Ir al contenido principal

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ácterBytes UTF-8Componente
␠%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.

Guías de codificación de URL