Curious TechieDev Toolbox
Todas las Guías/Estándares Web8 min read

¿Qué es URL Encoding (Codificación Porcentual)?

Estándar RFC 3986, delimitadores reservados, conversión de bytes UTF-8 y sanitización de parámetros de consulta.

Puntos Clave
  • La codificación porcentual traduce caracteres especiales en secuencias %HH en hexadecimal (RFC 3986).
  • Delimitadores reservados como ?, &, = deben escaparse dentro de valores de parámetros.
  • encodeURIComponent() codifica valores individuales; encodeURI() conserva los separadores de ruta.
  • Los espacios pueden codificarse como %20 (estándar RFC) o + (formularios web tradicionales).

Los identificadores uniformes de recursos (URIs) están limitados a un subconjunto restringido del código US-ASCII. Para transferir acentos, emojis y puntuaciones reservadas de manera fiable, se emplea el Percent-Encoding (Codificación URL).

1. Por qué las URLs Requieren Percent-Encoding

Fijado por RFC 3986, el percent-encoding sustituye caracteres no permitidos por un signo de porcentaje (%) seguido del valor hexadecimal de sus bytes UTF-8 (ej. Espacio = %20).

2. Caracteres Reservados y No Reservados

  • No reservados: A-Z, a-z, 0-9, -, _, ., ~ (se mantienen intactos).
  • Reservados (Delimitadores sintácticos): :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =.

3. Diferencias entre encodeURI y encodeURIComponent

Utilice encodeURI ante URLs completas para conservar la estructura del protocolo (https://) y las rutas. Use encodeURIComponent al procesar valores aislados de parámetros (cadenas de búsqueda que contienen & o =).

4. El Dilema del Espacio: %20 vs Signo Más (+)

La norma RFC 3986 fija %20 para los espacios en cualquier punto del URI. El símbolo + para representar espacios proviene del estándar de formularios HTML (application/x-www-form-urlencoded) y solo debe emplearse en parámetros de consulta.