Come funziona
La codifica URL (percent-encoding) sostituisce i caratteri che non possono apparire letteralmente in un indirizzo con sequenze %XX contenenti il loro valore di byte. Ad esempio, lo spazio diventa %20.
L'ambito "Componente" fa l'escape anche dei caratteri riservati (= & / ? #): usalo per il valore di un parametro. "URL completo" preserva la struttura dell'indirizzo: usalo per un URL intero.
Nei form HTML lo spazio viene codificato come + (application/x-www-form-urlencoded); in tutti gli altri casi si usa %20 secondo lo standard RFC 3986.
Esempi
hola mundo & máshola%20mundo%20%26%20m%C3%A1sLa "&" viene sottoposta a escape (%26) per non confondersi con un separatore di parametri; "á" viene codificata in UTF-8 (%C3%A1).a=1&b=2a%3D1%26b%3D2https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202In modalità "URL completo" si conservano ://, / e ?; viene sottoposto a escape solo ciò che romperebbe l'indirizzo.Casi d'uso
- Comporre parametri di query in modo sicuro quando si costruisce un URL a mano.
- Codificare valori che contengono &, =, spazi o accenti prima di inviarli in una richiesta GET.
- Decodificare un URL per leggere quali valori porta ogni parametro.
- Preparare corpi application/x-www-form-urlencoded per l'invio di form.
Domande frequenti
Qual è la differenza tra "Componente" e "URL completo"?
"Componente" (encodeURIComponent) fa l'escape anche di =, &, /, ?, # — serve per un valore singolo. "URL completo" (encodeURI) preserva quei caratteri strutturali — serve per un URL intero.
Quando si usa + e quando %20 per lo spazio?
Il + riguarda solo il corpo dei form (application/x-www-form-urlencoded). Nel resto dell'URL, lo standard per lo spazio è %20.
Perché "á" diventa %C3%A1 e non un singolo %XX?
Perché viene codificato in UTF-8: i caratteri non ASCII occupano più byte, e ogni byte è rappresentato con la propria sequenza %XX.
Codificare un URL lo rende sicuro?
No. La rende solo valida a livello di sintassi. Non è cifratura e non protegge il contenuto in alcun modo.