Codificador e Decodificador de URL
Codifique e decodifique URLs, query strings e caracteres especiais.
O resultado aparecerá aqui
Digite algo no campo de entrada
encodeURIComponent
Codifica todos os caracteres especiais, incluindo / ? : @ & = + $ #
Use para: valores de query params, fragmentos de URL
encodeURI
Preserva caracteres válidos em URLs: / ? : @ & = + $ #
Use para: URLs completas que já têm estrutura válida
encodeURIComponent vs encodeURI — qual você realmente precisa
Use encodeURIComponent para valores dentro de parâmetros de query — ele codifica caracteres como /, ?, &, = e # que têm significado estrutural em URLs. Use encodeURI apenas para codificar uma URL completa onde esses caracteres estruturais devem ser preservados.
Se você está construindo uma URL de redirecionamento como /redirect?next=/dashboard?tab=settings, a URL interna deve ser codificada com encodeURIComponent — caso contrário, o parser externo vai dividir no ? e = internos e quebrar o redirecionamento. encodeURI é para quando você tem uma URL completa com estrutura conhecida e só quer tratar caracteres não-ASCII como espaços ou letras acentuadas.
Quando o Base64 é a escolha certa para transmissão de dados via URL
Base64 não é codificação de URL — é codificação de binário para texto. Use quando precisar transmitir dados binários, strings arbitrárias ou objetos JSON por um parâmetro de URL sem se preocupar com escaping de caracteres.
Um padrão comum: codifique um token JSON ou um ID binário em Base64 para usar em um parâmetro de URL e decodifique no servidor. Base64 usa +, / e = que não são seguros para URL — para parâmetros de URL, use codificação Base64url (que substitui + por - e / por _) ou codifique a string Base64 em URL depois. Esta ferramenta faz a codificação; verifique se a saída funciona no contexto de destino.
Caracteres especiais que quebram URLs — e como exatamente são codificados
Espaço vira %20 (ou + em codificação de formulário), & vira %26, = vira %3D, ? vira %3F, / vira %2F, @ vira %40, # vira %23. São codificados em percent-encoding como valores hexadecimais dos bytes ASCII.
Os caracteres que causam mais problemas de URL são os delimitadores estruturais: &, =, ? e # têm papéis específicos na sintaxe de URL. Se o valor de um parâmetro de query contiver qualquer um desses, ele deve ser codificado ou o parser de URL vai interpretar a estrutura de forma errada. Percent-encoding substitui cada byte por %XX onde XX é o valor hexadecimal maiúsculo. É isso que encodeURIComponent faz para todo caractere exceto letras, dígitos, -, _, . e ~.
Codificando parâmetros de URL ao construir requisições de API e URLs de webhook
Ao construir requisições de API programaticamente, sempre codifique os valores dos parâmetros com encodeURIComponent antes de concatená-los na string da URL — mesmo que o valor 'pareça seguro'. Strings com entrada do usuário quase certamente contêm caracteres que quebram o parsing de URL.
Um bug comum: o usuário digita um endereço de email com sinal + (comum em aliases Gmail como [email protected]). Se você concatenar diretamente na query string, o + é interpretado como espaço por muitos parsers de URL. Sempre codifique. Para URLs de webhook que incluem URLs de callback como parâmetros, frequentemente é necessária codificação dupla: codifique a URL de callback primeiro, depois codifique o resultado como valor de parâmetro.

