Menu

Codificador / Decodificador de URL

Codifique e decodifique componentes de URL com segurança.

Última atualização

Modo
Escopo
DecodificadoCole texto para começar
Codificado
A saída codificada ou decodificada aparece aqui — com Unicode.

O que é um codificador de URL?

Um codificador de URL (também chamado de percent-encoder ou codificador de URI) substitui caracteres reservados ou inseguros em URLs por % seguido de dois dígitos hexadecimais. Os devs recorrem a ele na hora de montar query strings, escapar segmentos de path, compartilhar URLs com espaços ou caracteres não-ASCII e depurar redirects.

URLs só aceitam um conjunto pequeno de caracteres ASCII. Qualquer coisa fora disso — espaços, acentos, emojis ou símbolos reservados como ?, #, &, = quando usados como dado — precisa passar pelo percent-encoding para sobreviver à viagem do navegador até o servidor.

O JavaScript expõe duas funções de codificação: encodeURI (preserva a estrutura da URL: /, ?, #, &) e encodeURIComponent (codifica tudo que é reservado). Use encodeURIComponent para *valores* que você coloca dentro de query strings, e encodeURI para *URLs inteiras* que você quer manter funcionais.

O que você vai aprender codificando URLs

  • O percent-encoding troca um único byte por % mais dois dígitos hex — por exemplo, espaço vira %20.
  • Caracteres reservados (: / ? # & = +) têm significado dentro da estrutura da URL. Eles precisam ser codificados quando aparecem como dado, e não como separador.
  • Texto não-ASCII (acentos, emojis, cirílico, CJK) é primeiro convertido para bytes UTF-8 e, depois, cada byte recebe percent-encoding.

Como codificar e decodificar URLs passo a passo

  1. Escolha a direção

    Escolha Codificar se você tem texto cru e quer deixá-lo seguro para URL. Escolha Decodificar se você tem uma string com % e quer recuperar o texto original.

  2. Escolha o modo de codificação

    Use encodeURIComponent (codifica tudo que é reservado) para valores de query string; use encodeURI (preserva a estrutura) para URLs inteiras.

  3. Cole o que você quer converter

    Cole o texto cru ou a URL codificada. A entrada com várias linhas funciona para decodificar em lote.

  4. Copie o resultado

    Copie o valor codificado ou decodificado. A conversão acontece localmente, no seu navegador, então qualquer dado sensível na URL fica na sua máquina.

Referência rápida das codificações de URL mais comuns

Os caracteres que você mais vai ver codificados, com a forma percent-encoded de cada um. A semântica dos caracteres reservados vem da RFC 3986.

CaractereCodificadoPor quê
espaço%20Espaços não são permitidos em URLs
!%21Reservado em alguns servidores
#%23Marca o início do fragmento
$%24Caractere reservado
&%26Separa parâmetros de query
+%2BSignifica espaço em corpos form-encoded
/%2FSeparador de path
:%3ASepara esquema e host
=%3DSepara chave e valor na query string
?%3FMarca o início da query string
@%40Separa userinfo e host
byte UTF-8%C3%A9Cada byte não-ASCII é codificado

Exemplos de codificação de URL para você testar

Codificar uma busca

Original

hello world & more

Codificado

hello%20world%20%26%20more

Os espaços viram %20 e o & vira %26, para que ele não seja confundido com um separador de parâmetro de query.

Codificar caracteres não-ASCII

Original

café

Codificado

caf%C3%A9

é em UTF-8 é a sequência de bytes 0xC3 0xA9, então a forma codificada tem *dois* grupos %XX para esse único caractere.

encodeURI vs encodeURIComponent

Original

https://example.com/path?q=hello world

encodeURI

https://example.com/path?q=hello%20world

encodeURIComponent

https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world

encodeURI mantém a estrutura da URL (barras, ?, =) intacta. Já encodeURIComponent codifica tudo que é reservado — use nele os valores que você coloca dentro de uma query string, nunca em uma URL inteira.

Erros comuns na codificação de URLs

  • Usar encodeURI em valores de query string — o & e o = passam batido pela codificação e quebram o parsing dos parâmetros.
  • Codificar uma URL duas vezes. %2520 no lugar de %20 é o sinal clássico de bug por dupla codificação.
  • Esquecer que + significa espaço em corpos application/x-www-form-urlencoded, mas é um + literal no path ou na query da URL.

Perguntas frequentes sobre codificação de URL

O que é codificação de URL?
Codificação de URL (também chamada de percent-encoding) é uma forma de representar caracteres que têm significado especial em URLs, ou que não são seguros para transmitir, substituindo-os por % seguido de dois dígitos hexadecimais.
Qual é a diferença entre encodeURI e encodeURIComponent?
encodeURI preserva os caracteres de estrutura da URL (/, ?, #, &, =, +). encodeURIComponent codifica todos eles, que é exatamente o que você quer para *valores* individuais inseridos dentro de uma URL — valores de parâmetros de query, segmentos de path, fragmentos. Veja a documentação no MDN para encodeURI e encodeURIComponent.
Por que um espaço vira %20?
Espaços não são permitidos em URLs, então eles são substituídos por %20, o percent-encoding do caractere de espaço ASCII (0x20 em hexadecimal).
Quando devo codificar uma URL?
Codifique qualquer valor vindo do usuário ou dinâmico antes de colocá-lo em uma URL — valores de query string, segmentos de path, destinos de redirect, parâmetros OAuth. Nunca confie que a entrada crua é segura para URL.
Dá para reverter a codificação de URL?
Dá sim — isso é a decodificação de URL. decodeURI, decodeURIComponent ou qualquer decodificador de URL desfaz o percent-encoding, devolvendo os caracteres originais.

Saiba mais

Outras ferramentas para desenvolvedores

Aprenda a programar com o Coddy

COMEÇAR