Como codificar e decodificar URLs: um guia completo
Resposta rápida
A codificação URL converte caracteres não seguros em sequências %XX onde XX é o valor hexadecimal do byte. Os espaços tornam-se %20 (ou + nos dados do formulário), os caracteres chineses tornam-se sequências %XX de vários bytes. Use nosso codificador URL e decodificador URL gratuitos — todo o processamento acontece localmente em seu navegador.
Introdução
A codificação URL, também conhecida como codificação percentual, é um mecanismo para codificar caracteres reservados e inseguros em um URL para que URL possa ser transmitido com segurança pela Internet. URLs só pode conter um conjunto limitado de caracteres ASCII; qualquer outro caractere (espaços, letras não ASCII, símbolos) deve ser codificado em porcentagem como uma sequência começando com % seguida por dois dígitos hexadecimais representando o valor do byte.
Passo a passo
-
Identifique o que precisa de codificação
Os caracteres que não estão no conjunto não reservado (A-Z, a-z, 0-9, -, ., _, ~) devem ser codificados em porcentagem. Isso inclui espaços, separadores de consulta como = e &, barras e todos os caracteres não ASCII, como chinês, árabe ou emoji.
-
Codifique o URL ou string de consulta
Cole seu texto na ferramenta URL Encoder. Ele usa encodeURIComponent() para codificar todos os caracteres reservados. O resultado aparece instantaneamente no campo de saída.
-
Copie o resultado codificado
Clique no botão Copiar para copiar a string codificada por porcentagem. Agora você pode incorporá-lo com segurança em um parâmetro de consulta URL, solicitação API ou envio de formulário.
-
Decodifique um URL codificado
Cole um URL codificado ou uma string de consulta na ferramenta decodificador URL. Ele usa decodeURIComponent() para restaurar os caracteres originais. Verifique se a saída decodificada corresponde à sua expectativa.
-
Verifique casos extremos
Verifique se os espaços estão decodificados corretamente (%20 vs +), se as sequências UTF-8 multibyte são decodificadas para o caractere correto e se as strings já codificadas não são codificadas duas vezes.
Exemplos
Codifique o texto com um espaço
Entrada: Hello World
Saída: Hello%20World
Codifique um separador de caminho
Entrada: a/b
Saída: a%2Fb
Codificar caracteres chineses (UTF-8)
Entrada: 你好
Saída: %E4%BD%A0%E5%A5%BD
Decodifique um parâmetro de consulta codificado
Entrada: key%3Dvalue%26foo%3Dbar
Saída: key=value&foo=bar
Problemas comuns
- Codificação dupla: codificar uma string já codificada transforma %20 em %2520. Sempre verifique se a entrada já está codificada antes de recodificar.
- Confundindo encodeURI com encodeURIComponent: encodeURI mantém caracteres reservados como /, ?, & intactos para URLs completo, enquanto encodeURIComponent codifica tudo para valores de parâmetros de consulta.
- Manipulação de espaço: %20 é o formato codificado em porcentagem; + é válido apenas em dados do corpo do aplicativo/x-www-form-urlencoded, não no caminho URL ou na string de consulta de acordo com RFC 3986.
- Codificações legadas não UTF-8: os navegadores modernos codificam como UTF-8, mas os sistemas legados podem usar GBK ou Latin-1, causando mojibake quando decodificados do outro lado.
Dicas
- Use encodeURIComponent() para valores de parâmetros de consulta individuais e encodeURI() para URLs inteiros que já estão bem formados.
- Ao construir strings de consulta, codifique o valor, mas não os separadores = ou & — codifique cada valor separadamente e depois junte-se a &.
- Use nossas ferramentas de codificador e decodificador URL para depurar chamadas API que retornam 400 erros devido a strings de consulta malformadas.
- Sempre decodifique no lado do servidor usando a mesma codificação de caracteres (UTF-8) para evitar mojibake.