URL Encoding explicado: Codificação percentual, UTF-8 e caracteres especiais

5 min de leitura

A codificação URL (codificação percentual) converte caracteres especiais num formato que pode ser transmitido pela internet. Espaços viram %20, ampersands viram %26 e caracteres não ASCII são codificados como sequências de bytes UTF-8.

Por que as URLs precisam de codificação

As URLs só podem conter um conjunto limitado de caracteres (RFC 3986): letras, dígitos e alguns caracteres especiais (-._~). Todo o resto precisa de codificação percentual.

Codificações comuns

CaractereCodificado
Espaço%20 (ou + em query strings)
&%26
=%3D
?%3F
#%23
/%2F
@%40

Unicode em URLs

Caracteres não ASCII (como café) são primeiro codificados como UTF-8, depois cada byte é codificado com percentual: caf%C3%A9.

Em JavaScript

encodeURIComponent("hello world & café")
// "hello%20world%20%26%20caf%C3%A9"

decodeURIComponent("hello%20world")
// "hello world"

Gere URLs limpas

Evite problemas de codificação usando slugs limpas. O nosso gerador de slugs de URL cria slugs seguros automaticamente.