Codificador & Decodificador URL — Ferramenta Online Grátis
Codifique e decodifique URLs instantaneamente. Lide com caracteres especiais, query parameters e Unicode com encodeURIComponent, encodeURI ou codificação de query string. Parse URLs completas em seus componentes — 100% client-side, nada sai do seu navegador.
Codificar / Decodificar
Teste rápido — clique em um caractere para inseri-lo:
Saída
Parser de URL
O que é Codificação URL?
A codificação URL, formalmente conhecida como percent-encoding, é uma forma de representar caracteres que não são permitidos ou têm significado especial em uma URL. O mecanismo substitui caracteres inseguros ou reservados por um sinal de porcentagem (%) seguido de dois dígitos hexadecimais representando o valor do byte UTF-8 do caractere. Por exemplo, um espaço (ASCII 32 / 0x20) se torna %20, e um e-comercial (&) se torna %26.
URLs são restritas a um subconjunto de caracteres ASCII imprimíveis. Qualquer caractere fora desse conjunto seguro — incluindo caracteres Unicode como emoji e scripts não-latinos, caracteres com significado especial na sintaxe de URL (como ?, #, / e =), e caracteres de controle invisíveis — deve ser codificado antes de ser incluído em uma URL.
encodeURI vs encodeURIComponent
JavaScript fornece duas funções nativas para codificação URL, e escolher a correta importa para a correção:
| Função | Propósito | Caracteres NÃO codificados |
|---|---|---|
| encodeURI() | Codificar uma URL completa e estruturalmente válida | A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # |
| encodeURIComponent() | Codificar um componente individual de URL (ex: um valor de query) | A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
| decodeURI() | Reverso do encodeURI | Não decodifica caracteres que o encodeURI não codificaria |
| decodeURIComponent() | Reverso do encodeURIComponent | Decodifica todas as sequências percent-encoded |
A regra geral: use encodeURIComponent para valores que você está inserindo em uma URL (nomes e valores de query parameters, segmentos de path com dados do usuário). Use encodeURI apenas quando já tem uma URL completa e estruturalmente correta e simplesmente quer garantir que é segura para transmissão.
Caracteres Comuns que Precisam de Codificação URL
| Caractere | Forma Codificada | Por que precisa de codificação |
|---|---|---|
| espaço | %20 (ou + em query strings) | Espaços não são permitidos em nenhuma parte de uma URL |
| & | %26 | Delimitador entre query parameters; deve ser codificado em valores |
| = | %3D | Separa nome do valor do parâmetro; deve ser codificado em valores |
| ? | %3F | Introduz a query string; deve ser codificado em segmentos de path e valores |
| # | %23 | Introduz um fragmento; tudo após # não é enviado ao servidor |
| / | %2F | Separador de path; codifique quando / faz parte de um valor |
| + | %2B | Significa "espaço" em query strings form-encoded; codifique o + literal com %2B |
| @ | %40 | Usado na authority (userinfo@host); codifique em valores de path/query |
| % | %25 | O próprio caractere de escape; um % literal deve ser codificado como %25 |
Perguntas Frequentes
O que é codificação URL?
Codificação URL (percent-encoding) converte caracteres especiais e não-ASCII em uma URL para um formato seguro, substituindo cada caractere por um % seguido de dois dígitos hexadecimais representando seu valor de byte UTF-8. Isso garante que as URLs contenham apenas caracteres do subconjunto ASCII permitido definido na RFC 3986, prevenindo erros de parse e ambiguidade.
Qual é a diferença entre encodeURI e encodeURIComponent?
encodeURI é para URLs completas — deixa caracteres estruturais como ://, /, ?, & e = sem codificação porque fazem parte da estrutura da URL. encodeURIComponent é para valores individuais (como valores de query parameters) — codifica esses caracteres estruturais também, para que o valor não quebre a estrutura da URL. Sempre use encodeURIComponent ao inserir dados fornecidos pelo usuário em uma URL.
Qual é a diferença entre %20 e + para espaços em URLs?
%20 é a codificação percent-encoded universalmente correta de um espaço e é válida em qualquer parte de uma URL. O sinal + representa um espaço apenas dentro da query string e apenas quando o content type é application/x-www-form-urlencoded. No path de uma URL, + é um sinal de mais literal, não um espaço. Para máxima compatibilidade e clareza, prefira %20 a + ao codificar espaços em URLs construídas programaticamente.
Como caracteres Unicode são codificados em URLs?
Caracteres Unicode não são diretamente percent-encoded a partir de seu code point Unicode. Em vez disso, o caractere é primeiro convertido para sua sequência de bytes UTF-8, e então cada byte é percent-encoded individualmente. O encodeURIComponent do JavaScript lida com isso automaticamente, tornando-o a opção mais segura para codificar qualquer entrada do usuário que possa conter caracteres não-ASCII.
Ferramentas Relacionadas
- Codificador & Decodificador Base64 — codifique e decodifique strings Base64 para data URIs e payloads de API
- Formatador & Validador JSON — formate e valide JSON com destaque de sintaxe
- Debugger de Erros CORS — diagnostique erros cross-origin e obtenha código de correção para Express, Nginx, Apache
- Referência de Códigos HTTP — consulte todos os códigos HTTP com explicações e exemplos