Como codificar e decodificar URLs

· 3 min de leitura

Se você já viu %20 em uma URL onde deveria haver um espaço, ou %C3%A9 onde um caractere acentuado deveria estar, você encontrou a codificação de URL. É uma parte fundamental de como a web funciona, e entendê-la ajuda a depurar links quebrados, problemas de API e envios de formulário.

O que a codificação de URL faz

URLs só podem conter um conjunto limitado de caracteres com segurança: letras (A-Z, a-z), dígitos (0-9) e alguns caracteres especiais (-, _, ., ~). Todo o resto — espaços, caracteres acentuados, emojis e símbolos como &, =, #, ? — deve ser convertido para um formato seguro.

A codificação de URL (também chamada de percent-encoding) substitui caracteres inseguros por um % seguido de seus valores hexadecimais. Exemplos: espaço vira %20, & vira %26, = vira %3D, # vira %23, ? vira %3F, / vira %2F, @ vira %40.

Quando você precisa de codificação de URL

Como codificar e decodificar

1. Escolha codificar ou decodificar — selecione a direção. Escolha encodeURIComponent para parâmetros de consulta ou encodeURI para URLs completas. 2. Cole sua entrada — insira o texto ou URL. O resultado é atualizado instantaneamente. 3. Copie a saída — use o resultado no seu código, requisição de API ou navegador.

Dicas

Perguntas frequentes

Qual a diferença entre encodeURI e encodeURIComponent?

encodeURI preserva caracteres válidos na estrutura de URL (barras, dois-pontos, pontos de interrogação). encodeURIComponent codifica tudo exceto letras, dígitos e alguns caracteres seguros. Use encodeURIComponent para valores de parâmetros de consulta, encodeURI para URLs completas.

Por que espaços viram %20 ou +?

Na codificação de URL, espaços viram %20. Em dados de formulário (application/x-www-form-urlencoded), espaços viram +. Ambos são válidos em seus respectivos contextos, mas %20 é o padrão universal para URLs.

Preciso codificar minhas URLs manualmente?

Na maioria dos casos, sua linguagem de programação ou framework lida com codificação automaticamente. Codificação manual é necessária ao construir URLs à mão, depurar requisições de API ou trabalhar com strings de consulta que contêm caracteres especiais.

Meus dados são enviados a um servidor?

Não. Toda a codificação e decodificação acontece no seu navegador.