Codificador e Decodificador de URL

Codifique texto para uso seguro em URLs (percent-encoding) ou decodifique de volta. Essencial para parâmetros de query e links.

O que é codificação de URL

A codificação de URL, também chamada de codificação percentual, substitui caracteres que não são seguros em um endereço da Web por um sinal de porcentagem seguido de um código. Um espaço se torna %20, um E comercial se torna %26 e assim por diante. Isso permite que você coloque qualquer texto, espaços, acentos, símbolos em um URL sem quebrá-lo. Esta ferramenta codifica texto para uso seguro em URLs e decodifica texto codificado por porcentagem de volta para um formato legível.

Por que é necessário

Os URLs têm um conjunto limitado de caracteres que podem conter com segurança. Quando você coloca um termo de pesquisa, um valor de parâmetro ou um segmento de caminho que inclui espaços, barras, pontos de interrogação ou letras que não sejam do inglês diretamente em um URL, esses caracteres podem ser mal interpretados e quebrar o link. A codificação os converte em uma representação segura que os servidores e navegadores decodificam corretamente. Qualquer pessoa que crie strings de consulta, chamadas de API ou links programaticamente precisa disso constantemente.

Codificação e decodificação

A codificação pega texto legível e o torna seguro para URL, essencial ao construir um link ou parâmetro de consulta. A decodificação faz o inverso, transformando uma string codificada por porcentagem novamente em texto legível, o que é útil quando você está lendo um URL que alguém lhe enviou, depurando uma chamada de API ou inspecionando o que um parâmetro realmente contém. Esta ferramenta faz as duas coisas com um clique cada e lida corretamente com caracteres acentuados e não ingleses por meio de UTF-8.

Situações comuns

Construir um URL de pesquisa onde a consulta contenha espaços e símbolos. Passar um valor que inclui um sinal de E comercial ou de igual por meio de um parâmetro de consulta sem quebrar a estrutura do URL. Ler um URL longo e codificado para entender o que ele aponta. Construindo solicitações de API onde os parâmetros devem ser codificados. Como ele é executado em seu navegador, você pode codificar ou decodificar com segurança valores que contenham dados confidenciais.

O que é codificação de URL

A codificação de URL, também chamada de codificação percentual, substitui caracteres inseguros ou reservados em um URL por um sinal de porcentagem seguido por dois dígitos hexadecimais. Um espaço se torna %20, um E comercial se torna %26 e assim por diante. Os URLs são limitados a um pequeno conjunto de caracteres ASCII pelo padrão RFC 3986, portanto, qualquer coisa fora desse conjunto, espaços, acentos, emoji ou símbolos reservados como? & = # quando usado como dados, deve ser codificado para viajar do navegador ao servidor sem quebrar a estrutura da URL.

encodeURI versus encodeURIComponent

JavaScript oferece duas funções de codificação, e escolher errado é um bug comum. encodeURIComponent codifica tudo reservado e é o que você deseja para valores individuais colocados em uma string de consulta, um termo de pesquisa, um valor de parâmetro, um destino de redirecionamento. encodeURI preserva caracteres de estrutura de URL como / ? & = e destina-se a codificar um URL inteiro, mantendo-o funcional. A regra prática: use encodeURIComponent para os valores dentro de uma URL e encodeURI apenas para uma URL inteira. Esta ferramenta codifica componentes, que é o que você precisa na maioria das vezes.

Erros comuns de codificação de URL

Dois bugs dominam. A codificação dupla acontece quando você codifica uma string que já está codificada, %20 se torna %2520, o que quebra o link; codifique apenas texto bruto, nunca um URL já codificado, e decodifique primeiro se não tiver certeza. A outra é a ambiguidade do sinal de mais: em uma string de consulta, + pode significar um espaço (da codificação do formulário HTML), mas em um caminho de URL é um sinal de mais literal. Em caso de dúvida, use %20 para um espaço que seja inequívoco em todos os lugares. Lembre-se também de que um & não codificado dentro de um valor será mal interpretado como um separador de parâmetros, dividindo seus dados.

Perguntas frequentes

Qual é a diferença entre codificação de URL e Base64?
A codificação de URL torna o texto seguro para endereços da Web, codificando caracteres inseguros por porcentagem. Base64 é uma codificação diferente para tornar os dados binários seguros para texto. Eles servem a propósitos diferentes e não são intercambiáveis.
Por que um espaço se torna% 20?
Espaços não são permitidos em URLs, portanto a codificação os substitui por% 20, uma representação segura que navegadores e servidores decodificam de volta para um espaço. Alguns contextos usam um sinal de mais.
Ele lida com caracteres acentuados e não ingleses?
Sim. A ferramenta codifica em UTF-8, para que letras e caracteres acentuados de qualquer idioma sejam codificados e decodificados corretamente.
Quando eu decodificaria um URL?
Quando você deseja ler o que um URL ou parâmetro codificado realmente contém, é útil para depurar chamadas de API, inspecionar links ou entender um endereço codificado longo que alguém lhe enviou.
Meus dados são privados?
Sim. A codificação e a decodificação acontecem no seu navegador sem upload.
Qual é a diferença entre codificação e decodificação de URL?
A codificação converte caracteres inseguros em códigos percentuais (um espaço torna-se% 20) para que o texto seja seguro dentro de uma URL. A decodificação inverte, transformando %20 novamente em um espaço para exibição. Use codificar para construir um URL, decodificar para ler um.
Quando devo usar encodeURIComponent versus encodeURI?
Use encodeURIComponent para valores individuais dentro de uma URL, como valores de parâmetros de consulta, ele codifica tudo reservado. Use encodeURI apenas para uma URL inteira que você deseja manter funcional, pois preserva caracteres de estrutura como / ? & =.
Por que meu URL contém% 2.520?
Isso é codificação dupla: uma string já codificada foi codificada novamente, então % em %20 tornou-se %25. Codifique apenas texto bruto, nunca um URL já codificado. Se não tiver certeza, decodifique primeiro e depois codifique uma vez.
Devo codificar um espaço como% 20 ou +?
%20 é o padrão e funciona em qualquer lugar. O + significa apenas um espaço nos dados do formulário da string de consulta e é um sinal de adição literal em um caminho de URL. Em caso de dúvida, use %20.