Cos'è la codifica URL?
Gli URL possono contenere solo un insieme limitato di caratteri ASCII. Tutto il resto — spazi, &, =, ?, lettere non-ASCII — deve essere percent-encoded. Ogni byte non consentito viene sostituito con % seguito dal suo valore esadecimale a due cifre. Ad esempio, uno spazio diventa %20 e é diventa %C3%A9 (la sua sequenza UTF-8).
encodeURIComponent vs encodeURI
JavaScript espone due funzioni integrate con regole di escape diverse:
- encodeURIComponent codifica quasi tutto — sicuro per inserire un singolo valore in una query string o in un segmento di percorso.
- encodeURI preserva i caratteri validi in un URL completo (
:/?#[]@!amp;'()*+,;=), quindi serve a codificare un URL intero senza rompere la sua struttura.
Regola pratica: usa encodeURIComponent per inserire un valore utente in un URL, e encodeURI per sanificare un URL già costruito.
Esempi comuni
- hello world
- hello%20world
- a+b=c
- a%2Bb%3Dc
- café
- caf%C3%A9
- https://x.com/?q=a b
- https%3A%2F%2Fx.com%2F%3Fq%3Da%20b