Codificador URL
Codifique e decodifique URLs
Como usar Codificador URL
Codifique e decodifique URLs Ferramenta gratuita online, sem registo, sem anúncios intrusivos. Use agora.
Para que serve a codificação de URLs?
URLs podem conter apenas um conjunto limitado de caracteres ASCII. Caracteres especiais — espaços, acentos, pontuação e caracteres não-ASCII — devem ser codificados como sequências de porcentagem (%XX) para serem transmitidos com segurança em uma URL. Isso é especialmente relevante para o português, que usa muitos caracteres acentuados.
- Parâmetros de consulta: Passar entrada do usuário como parâmetros de URL requer codificação. Uma busca por "café com leite" torna-se
caf%C3%A9%20com%20leitena URL — os caracteres especiais são substituídos por sua representação UTF-8 em hexadecimal. - Requisições de API: Construir URLs de API programaticamente — codificar os parâmetros antes de anexá-los à URL base evita requisições malformadas e vulnerabilidades de segurança como injeção de parâmetros.
- Envio de dados de formulário: Formulários HTML com method="GET" codificam os valores do formulário na URL. Entender essa codificação ajuda a depurar envios de formulários e reconstruir os valores originais ao analisar logs.
- Compartilhamento de links: Compartilhar URLs contendo caracteres não-ASCII (letras acentuadas como ã, ç, é, ú) — muitas plataformas corrompem esses caracteres sem codificação adequada, especialmente ao copiar de um sistema para outro.
- Depuração: Decodificar uma URL codificada para ler os parâmetros originais — útil ao inspecionar requisições de rede nas DevTools do navegador ou em logs de servidor web.
Regras de codificação: Letras (A-Z, a-z), dígitos (0-9) e os caracteres -_.~ nunca são codificados. Todo o restante é codificado como % seguido de dois dígitos hexadecimais representando os valores de byte UTF-8 do caractere.
Frequently Asked Questions
Qual é a diferença entre encodeURI e encodeURIComponent no JavaScript?
encodeURI codifica uma URL completa — deixa caracteres estruturais da URL (/, ?, &, #, :) sem codificação, pois têm significado na URL. encodeURIComponent codifica tudo exceto letras, dígitos e -_.~* — usado para valores individuais de parâmetros. Sempre use encodeURIComponent para valores de parâmetros de consulta para evitar quebrar a estrutura da URL.
Qual é a diferença entre + e %20 para espaços?
Ambos representam um espaço na codificação de URL, mas em contextos diferentes. %20 é correto para todos os componentes de URL. O sinal + representa um espaço apenas em application/x-www-form-urlencoded (dados de formulário HTML) — não em segmentos de caminho. Usar + em um caminho codifica um sinal de mais literal, não um espaço.
Por que decodificar duas vezes causa problemas?
Se %252F aparece em uma URL, ele codifica %2F (que por sua vez codifica /). Decodificar uma vez dá %2F. Decodificar duas vezes dá /. A dupla codificação ocorre quando um valor é codificado e depois a URL inteira é codificada novamente. Isso causa problemas de segurança (ataques de path traversal) quando os servidores decodificam as URLs múltiplas vezes.
Quais caracteres devem ser codificados em um segmento de caminho de URL?
Caracteres reservados com significado especial devem ser codificados em segmentos de caminho: espaço (%20), # (%23), % (%25), ? (%3F) e outros. A barra / é o separador de caminho — para incluir uma barra literal em um segmento de caminho, codifique-a como %2F. Alguns servidores decodificam %2F de volta para / o que pode ser um problema de segurança.
O que é Punycode e como se relaciona com a codificação de URL?
Punycode converte nomes de domínio internacionalizados (IDN) com caracteres não-ASCII para codificação compatível com ASCII. 'münchen.de' torna-se 'xn--mnchen-3ya.de' em Punycode. É diferente da codificação percentual — aplica-se especificamente a nomes de domínio, não a caminhos ou parâmetros.
Codificação de URL vs Base64 vs entidades HTML
A codificação de URL (codificação percentual) torna os dados seguros para URLs. A codificação Base64 torna os dados binários seguros para contextos de texto (e-mail, JSON). As entidades HTML tornam os caracteres especiais seguros para HTML: & torna-se &, < torna-se <. Cada uma resolve o mesmo problema — representar dados em um conjunto de caracteres restrito — mas para diferentes contextos de destino. Usar a codificação errada para o contexto causa erros de exibição ou vulnerabilidades de segurança.