Guida alla Codifica URL: Perché e Come Codificare gli URL
Ti sei mai chiesto perché gli spazi negli URL diventano %20 e le e commerciali diventano %26? La codifica URL (chiamata anche percent-encoding) converte i caratteri non sicuri per gli URL in un formato che i server web possono comprendere.
Perché la Codifica URL è Importante
Gli URL possono contenere solo un insieme limitato di caratteri ASCII. Caratteri speciali, spazi e testo non ASCII necessitano di codifica per essere trasmessi in modo sicuro. Senza codifica, gli URL si rompono in modi imprevedibili — uno spazio potrebbe troncare un URL, una e commerciale potrebbe essere scambiata per un separatore di parametri.
Prova il nostro Codificatore/Decodificatore URL per vedere come qualsiasi testo si trasforma quando codificato per gli URL.
Quali Caratteri Necessitano di Codifica?
Caratteri Sicuri (nessuna codifica necessaria)
Lettere (A-Z, a-z), cifre (0-9) e questi simboli: -, _, ., ~
Caratteri Riservati (codifica quando usati come dati)
| Carattere | Codificato | Scopo negli URL |
|---|---|---|
: | %3A | Separatore di schema |
/ | %2F | Separatore di percorso |
? | %3F | Inizio query string |
# | %23 | Identificatore di frammento |
& | %26 | Separatore di parametri |
= | %3D | Separatore chiave-valore |
+ | %2B | Spesso rappresenta lo spazio |
@ | %40 | Separatore info utente |
% | %25 | Indicatore di codifica |
Codifica Sempre
Spazi (%20), caratteri non ASCII (byte UTF-8 codificati) e qualsiasi carattere al di fuori dell'insieme sicuro.
Codifica URL nella Pratica
Parametri Query
Il caso d'uso più comune. Quando costruisci URL di ricerca o richieste API:
https://api.example.com/search?q=hello%20world&lang=en
Dati dei Form
I form HTML con method="GET" codificano automaticamente i valori dei campi nell'URL. Gli spazi diventano + nella codifica dei form (leggermente diverso dal percent-encoding).
Segmenti di Percorso
Anche i nomi dei file e gli identificatori delle risorse nei percorsi URL necessitano di codifica. Un file chiamato my report.pdf diventa my%20report.pdf nell'URL.
Codifica in Diversi Linguaggi
JavaScript:
encodeURIComponent('hello world & more')
// "hello%20world%20%26%20more"
decodeURIComponent('hello%20world')
// "hello world"
Python:
from urllib.parse import quote, unquote
quote('hello world & more')
# 'hello%20world%20%26%20more'
Errori Comuni
- Doppia codifica — Codificare un URL già codificato trasforma
%20in%2520 - Usare
encodeURIinvece diencodeURIComponent—encodeURIsalta i caratteri riservati che contano nei valori dei query - Non codificare i segni
+— Negli URL,+può significare spazio. Codifica i segni più letterali come%2B - Dimenticare i non ASCII — I caratteri Unicode necessitano prima di codifica UTF-8, poi di percent-encoding
Domande Frequenti
Qual è la differenza tra encodeURI e encodeURIComponent?
encodeURI codifica un URL completo, saltando caratteri come :, /, ?, #. encodeURIComponent codifica tutto tranne i caratteri non riservati — usalo per i singoli valori dei parametri query.
Perché gli spazi a volte diventano + e a volte %20?
La codifica dei form (application/x-www-form-urlencoded) usa + per gli spazi. Il percent-encoding standard usa %20. Entrambi sono validi in contesti diversi.
Risorse Correlate
- Codifica Base64 Spiegata — un altro schema di codifica essenziale
- Pattern di Design per API JSON — costruire API che gestiscono correttamente la codifica
- Codificatore/Decodificatore URL — codifica e decodifica URL istantaneamente
- Codificatore Base64 — codifica dati in formato Base64