Ir para o conteúdo principal

Como codificar uma string para URL

A codificação percentual substitui cada caractere que não é seguro em uma URL por % seguido do valor hexadecimal de cada um de seus bytes UTF-8. O modo Componente, que usa encodeURIComponent(), é o certo para um único valor de consulta ou segmento de caminho.

Exemplo prático

CaractereBytes UTF-8Componente
␠%20%20
&%26%26
=%3D%3D
/%2F%2F
?%3F%3F
é%C3 %A9%C3%A9
😀%F0 %9F %98 %80%F0%9F%98%80

O modo Componente codifica a frase inteira como um único valor seguro.

Entrada
rock & roll/size=XL? café 😀
Resultado · encodeURIComponent()
rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80

O modo URL completa mantém & = / ? inalterados; use-o apenas em uma URL inteira.

Entrada
rock & roll/size=XL? café 😀
Resultado · encodeURI()
rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80

Como a ferramenta trata isso

  • Letras A–Z e a–z, dígitos 0–9 e - _ . ! ~ * ' ( ) nunca são alterados.
  • Qualquer outro caractere é convertido em bytes UTF-8, e cada byte é escrito como % mais dois dígitos hexadecimais maiúsculos: é ocupa dois bytes; a maioria dos emojis, quatro.
  • O modo Componente também codifica os caracteres reservados : / ? # [ ] @ & = + $ , ; para que não alterem a estrutura da URL.

Guias de codificação de URL