PK Systems
Codificadores e decodificadores

Codificador / Decodificador de URL

Faça percent-encoding e decoding de URLs e parâmetros. Escopo de componente ou URL completa, tudo no seu navegador.

Codificador / Decodificador de URL

Componente codifica tudo que não é seguro em URL (usa encodeURIComponent). URL completa preserva :/?&=# para que a URL inteira continue válida (usa encodeURI).

Saída

O que é codificação de URL?

Codificação de URL (também chamada de percent-encoding) é a forma de representar caracteres que não são seguros em URL — espaços, letras com acento, &, ?, #, etc. — substituindo cada um por % seguido do valor hexadecimal do byte. O padrão está definido na RFC 3986. Para caracteres fora do ASCII, os bytes vêm do UTF-8, então é vira %C3%A9 (dois bytes). Esta ferramenta envolve as funções encodeURIComponent e decodeURIComponent nativas do navegador.

Como usar

Escolha Codificar ou Decodificar no modo, depois selecione o escopo. Componente é o padrão certo para valores de query string, campos de formulário e qualquer coisa que vai virar ?chave=…. URL completa é para URLs já mais ou menos válidas que você quer escapar minimamente — ela preserva : / ? & = # para que esses caracteres mantenham o sentido estrutural. Cole o texto e o resultado atualiza ao vivo. Use Mover para entrada para jogar a saída de volta como entrada e inverter o modo num round-trip rápido.

Componente ou URL completa — qual escolher?

Se está codificando um único valor (um termo de busca, uma URL de redirect, um e-mail) para colar dentro de uma query string, use Componente. Se está codificando uma URL inteira que já é mais ou menos válida e só quer escapar o que é unsafe, use URL completa. As duas se comportam de forma bem diferente em ? e & — Componente codifica, URL completa não. Na dúvida, codifique os valores dentro da URL com Componente e monte a URL você mesmo.

Percent-encodings comuns

Caractere Codificado Notas
space%20Espaços viram %20 em URLs (ou + em corpos form-encoded).
&%26Separa parâmetros da query string; tem que ser codificado dentro de um valor.
=%3DSepara nome do valor do parâmetro.
?%3FMarca o início da query string.
#%23Marca o início do fragmento (âncora) da URL.
/%2FSeparador de caminho; só é codificado dentro de segmentos.
é%C3%A9Caracteres não-ASCII são codificados em UTF-8 e depois percent-escapados byte a byte.

Perguntas frequentes

Algo é enviado para um servidor?
Não. Codificação e decodificação rodam no seu navegador via encodeURIComponent / decodeURIComponent. Nada é logado nem transmitido. Você pode confirmar abrindo DevTools > Network — nenhuma requisição é disparada enquanto você digita.
Por que + às vezes significa espaço?
Por causa de outra codificação (mais antiga) chamada application/x-www-form-urlencoded, usada em envio de formulários HTML. Nela, espaço vira + em vez de %20. O percent-encoding da RFC 3986 (que esta ferramenta usa) sempre usa %20. Se está decodificando o corpo de um envio de formulário e vê + no lugar de espaço, troque por espaço antes de decodificar, ou use um decodificador específico para form-encoded.
Por que a decodificação falha com erro?
decodeURIComponent lança URIError quando a entrada tem um % sem dois dígitos hexadecimais válidos depois, ou quando os bytes não formam UTF-8 válido. Causas comuns são strings duplamente codificadas (rode decode duas vezes) ou URLs coladas que foram alteradas pelo auto-correct do editor.
Qual a diferença entre encodeURI e encodeURIComponent?
encodeURI é para URLs inteiras — não toca em : / ? & = # @ nem em +, porque esses caracteres têm sentido estrutural na URL. encodeURIComponent é para pedaços de URL (um valor de query, um segmento de path) e codifica tudo que não é caractere reservado. Regra de bolso: monte URLs concatenando partes passadas por encodeURIComponent; nunca confie em encodeURI para entrada de usuário.
Dá para codificar emoji?
Dá. O navegador converte o emoji na sequência UTF-8 e percent-escapa byte a byte. Um emoji como 🎉 vira quatro escapes (%F0%9F%8E%89) porque é um codepoint de 4 bytes fora do plano básico. A decodificação inverte o processo — você recupera o emoji original.
Devo codificar a URL mais de uma vez?
Só se estiver aninhando URL dentro de URL (um parâmetro de redirect que aponta para outra URL). Cada nível de aninhamento exige uma codificação extra — senão o ? e o & da URL interna são interpretados como parte da externa. Para decodificar, rode o decode o mesmo número de vezes. Se acidentalmente codificou uma URL duas vezes, decodifique duas vezes e você recupera o original.