100% client-side: Toda a codificação e decodificação acontece no seu navegador. Nenhum dado é enviado para qualquer servidor.

Codificar / Decodificar

Teste rápido — clique em um caractere para inseri-lo:

espaçoSP & = ? # / @ + % " < > 🚀 ação

Saída

Parser de URL

Cole uma URL acima para ver seus componentes

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çãoPropósitoCaracteres 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

CaractereForma CodificadaPor 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
&%26Delimitador entre query parameters; deve ser codificado em valores
=%3DSepara nome do valor do parâmetro; deve ser codificado em valores
?%3FIntroduz a query string; deve ser codificado em segmentos de path e valores
#%23Introduz um fragmento; tudo após # não é enviado ao servidor
/%2FSeparador de path; codifique quando / faz parte de um valor
+%2BSignifica "espaço" em query strings form-encoded; codifique o + literal com %2B
@%40Usado na authority (userinfo@host); codifique em valores de path/query
%%25O 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