Cómo codificar una cadena para una URL
La codificación porcentual sustituye cada carácter que no es seguro en una URL por % seguido del valor hexadecimal de cada uno de sus bytes UTF-8. El modo Componente, que usa encodeURIComponent(), es el adecuado para un único valor de consulta o segmento de ruta.
Ejemplo práctico
| Carácter | 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 |
El modo Componente codifica toda la frase como un ú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
El modo URL completa deja & = / ? sin cambios, así que úsalo solo con una URL completa.
- Entrada
- rock & roll/size=XL? café 😀
- Resultado ·
encodeURI() - rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80
Cómo lo resuelve la herramienta
- Las letras A–Z y a–z, los dígitos 0–9 y - _ . ! ~ * ' ( ) nunca se modifican.
- Cualquier otro carácter se convierte en bytes UTF-8 y cada byte se escribe como % más dos dígitos hexadecimales en mayúsculas: é ocupa dos bytes y la mayoría de los emojis, cuatro.
- El modo Componente también codifica los caracteres reservados : / ? # [ ] @ & = + $ , ; para que no puedan alterar la estructura de la URL.