O que esta ferramenta faz
Aplica e remove percent-encoding em strings para uso em URLs. Suporta tanto modo component (codifica todos os caracteres reservados para que o valor seja seguro dentro de um parâmetro de query ou segmento de path) como modo URL completo (preserva a estrutura de https://host/path?query e codifica apenas as partes que precisam).
Quando usar
- Construir uma query string à mão e precisar de escapar espaços, e-comerciais e sinais de igual.
- Descodificar uma URL de redirecionamento que veio embrulhada em
%2Fe%3D. - Comparar a forma codificada de uma URL contra uma allow-list.
- Produzir um link partilhável limpo a partir de uma string com caracteres não-ASCII.
Como funciona
A codificação component usa encodeURIComponent, que aplica percent-encoding a cada caractere que não seja "unreserved" (A-Z a-z 0-9 - _ . ! ~ * ' ( )). A codificação de URL completo usa encodeURI, que deixa em paz os caracteres estruturais reservados (: / ? # [ ] @). A descodificação usa as funções inversas, com sequências mal formadas sinalizadas como erros em vez de descartadas silenciosamente.
Notas
Porque é que + por vezes descodifica para um espaço? Essa é a convenção application/x-www-form-urlencoded mais antiga, usada em submissões de formulário, não a codificação URL padrão. O RFC 3986 deixa o + em paz. A maioria dos descodificadores só trata + como espaço dentro da query string, nunca no path.
Devo aplicar isto à URL inteira ou só a uma parte? Codifica partes. Se codificares uma URL inteira em modo component, partes o :// e as barras do path. Constrói a URL a partir de pedaços já codificados, ou usa modo URL completo.
Lida com Unicode? Sim. UTF-8 primeiro, depois percent-encoding em cada byte. café torna-se caf%C3%A9.
Ferramentas relacionadas
- Base64 — mecanismo de escape diferente para binário em texto
- Formatador JSON — para payloads do corpo em vez de query strings