About URL Encoding
La codifica URL, nota anche come percent-encoding, è un meccanismo per codificare informazioni in un Uniform Resource Identifier (URI). Viene utilizzata per convertire i caratteri non consentiti in un URL in un formato che può essere trasmesso su Internet. Questa codifica sostituisce i caratteri ASCII non sicuri con un "%" seguito da due cifre esadecimali.
Usi comuni della codifica URL
- Formattazione delle stringhe di query negli URL
- Invio di dati di form tramite richieste HTTP (application/x-www-form-urlencoded)
- Creazione di URL validi con caratteri speciali o spazi
- Codifica dei caratteri non ASCII negli URL
- Passaggio di parametri complessi in API e servizi web
Come funziona la codifica URL
La codifica URL segue questi principi:
- I caratteri alfanumerici (A-Z, a-z, 0-9) rimangono invariati
- Caratteri speciali come spazio, ?, &, =, %, + vengono convertiti nei loro equivalenti percent-encoded
- Ogni byte di un carattere codificato in UTF-8 viene percent-encoded separatamente
- Un carattere spazio può essere codificato come "%20" o "+" (nei parametri di query)
- I caratteri riservati come /, :, ?, #, [ hanno significati speciali negli URL e possono essere trattati diversamente a seconda del contesto
encodeURI vs encodeURIComponent
JavaScript fornisce due funzioni per la codifica URL:
- encodeURI: Codifica un URI completo, preservando i caratteri che fanno parte della sintassi URI (come /:?#[]@!$&'()*+,;=)
- encodeURIComponent: Codifica un componente URI (come il valore di un parametro di query), codificando più caratteri inclusi quelli con significato speciale in un URI
Nella maggior parte dei casi, quando si codifica l'input dell'utente o i parametri di query, encodeURIComponent()
è l'opzione più sicura in quanto garantisce che tutti i caratteri potenzialmente problematici siano codificati correttamente.
Codifica URL per caratteri internazionali
I browser moderni codificano i caratteri non ASCII usando la codifica UTF-8 e poi percent-encodano ogni byte. Questo garantisce che caratteri internazionali, emoji e altri simboli Unicode possano essere inclusi correttamente negli URL. Per esempio, il carattere giapponese "日" viene prima codificato in UTF-8 come tre byte (E6 97 A5) e poi percent-encodato come "%E6%97%A5".
Examples
Testo semplice | Codificato URL |
---|---|
Ciao Mondo | Ciao%20Mondo |
https://example.com/?q=search term | https%3A%2F%2Fexample.com%2F%3Fq%3Dsearch%20term |
Sconto del 50%! | 50%25%20off%20sale%21 |
Smith & Jones LLC | Smith%20%26%20Jones%20LLC |