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
| Caractere | Bytes UTF-8 | Componente |
|---|---|---|
| ␠ | %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.