Gli identificatori universali di risorse (URI) sono limitati a un sottoinsieme di US-ASCII. Per trasmettere in sicurezza caratteri speciali, accenti ed emoji, il Web impiega il Percent-Encoding (Codifica URL).
1. Perché le URL Richiedono il Percent-Encoding
Regolato dalla RFC 3986, il percent-encoding converte i byte non validi in un segno di percentuale (%) seguito da due cifre esadecimali (es.: Spazio = %20).
2. Caracteres Riservati e Non Riservati
- Non riservati:
A-Z,a-z,0-9,-,_,.,~(mai codificati). - Riservati (Delimitatori):
:,/,?,#,[,],@,!,$,&,',(,),*,+,,,;,=.
3. encodeURI vs encodeURIComponent
Usa encodeURI su URL complete per preservare il protocollo (https://) e gli slash (/). Usa encodeURIComponent per codificare singoli valori nei parametri di ricerca.
4. Il Dilemma dello Spazio: %20 vs Segno Più (+)
La RFC 3986 stabilisce %20 per gli spazi nell’intera URI. L’uso del + deriva dai form HTML (application/x-www-form-urlencoded) ed è limitato ai parametri di query.