Codificador de URL

Codifique texto em porcentagem para que ele trafegue com segurança em uma URL, inteiramente no seu navegador.

Roda inteiramente no seu navegador. Nada é enviado, registrado ou armazenado.

Uma URL tem gramática, e os caracteres que pertencem a ela — "?", "&", "/", "#", espaços — precisam ser escapados quando fazem parte de um valor em vez da estrutura. Esse escape é a codificação por porcentagem.

Como funciona

Todo caractere fora do conjunto não reservado da RFC 3986 — letras, dígitos, "-", ".", "_" e "~" — é substituído por um sinal de porcentagem e o valor hexadecimal de cada um dos seus bytes UTF-8. Um espaço vira %20 e uma letra acentuada vira dois escapes, porque são dois bytes em UTF-8.

O estilo de dados de formulário existe porque o envio de formulários HTML é anterior a essa regra: nele, um espaço é "+" e o "~" também é escapado. Escolha esse estilo quando estiver montando um corpo application/x-www-form-urlencoded, e o estilo de componente para todo o resto.

Exemplos

Caso Entrada Resultado
Uma expressão de busca indo para uma query string coffee & cake coffee%20%26%20cake
A mesma expressão como dados de formulário coffee & cake coffee+%26+cake

Perguntas frequentes

Devo codificar uma URL inteira com isto?

Não. Codificar uma URL completa escapa também o "://" e os separadores, e deixa você com uma string que nenhum cliente consegue seguir. Codifique os valores individuais e depois monte a URL com eles.

Por que "!" é codificado aqui e o console do meu navegador não mexe nele?

O encodeURIComponent do JavaScript deliberadamente deixa de fora "!", "'", "(", ")" e "*", embora a RFC 3986 os reserve. Codificá-los é sempre aceito e evita surpresas em parsers mais rigorosos, então esta ferramenta codifica.

E o "#" em um fragmento?

Um "#" literal dentro de um valor precisa ser codificado como %23; caso contrário, tudo depois dele é lido como fragmento e nunca chega ao servidor.

Bom saber

  • Tudo acontece no seu navegador. O que você cola não é enviado, não é registrado e não é armazenado.

Fontes

Todas as ferramentas de Código