Sobre o codificador / decodificador de URL
URLs só podem conter um conjunto limitado de caracteres, então espaços, acentos e símbolos como &, ? e = precisam ser codificados por porcentagem (um espaço vira %20) para viajar com segurança em um endereço web. Isso codifica texto nessa forma e decodifica de volta para algo legível. Desenvolvedores usam o tempo todo para valores de query string, URLs de redirecionamento e callback, parâmetros de API, e para decodificar um link codificado e ver o que ele realmente contém.
Como funciona
A codificação oferece dois escopos:
- Componente (o uso padrão) codifica um único valor que vai dentro de uma URL — ele escapa
&,=,?,/,#,+e mais, então o valor não pode quebrar a estrutura da URL. É este que se usa para um parâmetro de query string. - URL completa preserva os caracteres que dão estrutura a uma URL (
:,/,?,&,#), então você pode codificar um endereço inteiro sem estragá-lo.
A decodificação converte as sequências %XX de volta em caracteres, e também transforma + em um espaço, seguindo como os envios de formulário codificam espaços. Sequências de porcentagem inválidas são sinalizadas.
Suposições e comportamento
- O modo componente é o padrão seguro para codificar um valor que você insere em uma URL; o modo URL completa é para codificar um endereço completo.
- A decodificação trata
+como um espaço, seguindo a convençãoapplication/x-www-form-urlencodedusada pelos envios de formulário HTML e por muitas query strings. - A codificação é baseada em UTF-8, então caracteres acentuados e não latinos codificam nas sequências de porcentagem multibyte corretas.
Limitações
- Os dois escopos de codificação não são intercambiáveis. O modo URL completa deixa
&,=,?,/e#sem escape, então usá-lo em um valor que contém esses caracteres quebrará a URL — use o modo componente para valores. - A regra
+→ espaço na decodificação é a convenção de codificação de formulário. Em contextos onde um+literal era pretendido (já codificado como%2B), tudo bem, mas um+bruto pretendido literalmente seria transformado em um espaço. - Ele codifica texto; não valida que o resultado seja uma URL bem formada nem que o endereço exista.
- Codificação por porcentagem malformada (como um
%solto ou%ZZ) é reportada como um erro na decodificação.
Privacidade
A codificação e decodificação rodam inteiramente no seu navegador. Seu texto nunca é enviado ou armazenado.

