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.