Encoder e Decoder de URL
Codifique e decodifique URLs online com encodeURI ou encodeURIComponent, analise parâmetros de query e corrija erros de %. Grátis e sem enviar dados.
Analisar URL
Como usar
- Escolha a operação: Codificar ou Decodificar.
- Selecione o modo: Componente para valores de parâmetros, ou URL completa para preservar : / ? # & =.
- Marque "Espaço como +" se o formato for de formulário (application/x-www-form-urlencoded).
- Cole o texto no campo de entrada e copie o resultado, ou use "Trocar" para encadear a operação inversa.
- Para inspecionar uma URL inteira, cole-a em "Analisar URL" e confira host, caminho, hash e parâmetros.
Como funciona
Uma URL só pode conter um conjunto restrito de caracteres ASCII. Letras, números e - _ . ~ são seguros em qualquer lugar. Todo o resto, como espaços, acentos, emojis e símbolos, precisa virar uma sequência de escape: o sinal % seguido de dois dígitos hexadecimais para cada byte do texto em UTF-8. Por isso ç vira %C3%A7 (dois bytes) e um emoji chega a ocupar quatro bytes, %F0%9F%98%80.
encodeURI ou encodeURIComponent?
O modo Componente (encodeURIComponent) codifica também os caracteres reservados : / ? # [ ] @ ! $ & ' ( ) * + , ; =, porque dentro de um valor eles não podem ser confundidos com a estrutura da URL. É o correto para montar o valor de um parâmetro, por exemplo um texto de busca que contém & ou =. O modo URL completa (encodeURI) preserva esses caracteres, pois eles fazem parte da estrutura: serve para uma URL inteira que só precisa ter espaços e acentos escapados.
A opção Espaço como + segue o formato application/x-www-form-urlencoded, usado por formulários HTML e por muitas APIs em query strings. Ao codificar, o espaço vira + em vez de %20; ao decodificar, cada + vira espaço. Um + literal, nesse formato, é escrito %2B.
Exemplo
O texto café & leite no modo Componente vira caf%C3%A9%20%26%20leite. Com "Espaço como +" marcado, fica caf%C3%A9+%26+leite. Na seção "Analisar URL", a URL https://exemplo.com/busca?q=a&q=b mostra o parâmetro q duas vezes, cada um com seu valor, na ordem em que aparece.
Erros comuns
- Codificar duas vezes: o
%de%20é codificado de novo e o resultado vira%2520. Se você vê%25onde esperava%, decodifique mais uma vez. - Usar encodeURI em valor de parâmetro: um
&dentro do valor não é escapado e quebra o parâmetro em dois. - % solto no texto: na decodificação, todo
%precisa ser seguido de dois dígitos hexadecimais. Um%literal deve ser escrito%25; do contrário a ferramenta aponta a posição do erro. - Confundir + com espaço: fora do formato de formulário, o
+é apenas um sinal de mais.
Todo o processamento usa as funções nativas do navegador, e nenhum texto é enviado a servidores.
Perguntas frequentes
Qual a diferença entre encodeURI e encodeURIComponent?
O encodeURI preserva os caracteres reservados da estrutura da URL (: / ? # & = e outros) e escapa apenas o que é inválido, como espaços e acentos. O encodeURIComponent escapa também os reservados, e por isso deve ser usado em valores de parâmetros.
Por que aparece %2520 na minha URL?
Porque o texto foi codificado duas vezes: o %20 (espaço) teve o seu % codificado como %25. Decodifique uma vez para voltar a %20 e mais uma para obter o espaço, e corrija o ponto do código que codifica em duplicidade.
Quando usar + em vez de %20 para o espaço?
O + só representa espaço no formato application/x-www-form-urlencoded, usado em formulários e em query strings de muitas APIs. No caminho da URL, use sempre %20. Na dúvida, %20 é aceito em todos os lugares.
O que significa o erro de sequência % malformada?
Todo % em texto codificado deve vir seguido de dois dígitos hexadecimais, como %20. Um % solto, como em "100% certo", é inválido. Para representar o próprio sinal de porcentagem, escreva %25. Bytes que não formam UTF-8 válido também geram esse erro.