Come codificare e decodificare URL
Se hai mai visto %20 in un URL dove avrebbe dovuto esserci uno spazio, o %C3%A9 dove un carattere accentato aveva il suo posto, hai incontrato la codifica URL. È un mattone fondamentale del web, e capirla aiuta a fare il debug di link rotti, problemi di API e invii di moduli.
Cosa fa la codifica URL
Gli URL possono contenere solo un insieme ristretto di caratteri sicuri: lettere (A-Z, a-z), cifre (0-9) e alcuni caratteri speciali (-, _, ., ~). Tutto il resto — spazi, accenti, emoji, simboli come &, =, #, ? — deve essere convertito in un formato sicuro.
La codifica URL (chiamata anche percent-encoding) sostituisce i caratteri non sicuri con un % seguito dal loro valore esadecimale in byte:
| Carattere | Codificato |
|---|---|
| Spazio | %20 |
| & | %26 |
| = | %3D |
| # | %23 |
| ? | %3F |
| / | %2F |
| @ | %40 |
Quando la codifica URL è necessaria
- Parametri di query con caratteri speciali — una query come
prezzo > 100 & categoria = scarpeha bisogno di codifica per funzionare in un URL - Caratteri non latini negli URL — nomi, città o contenuti in altre lingue devono essere codificati
- Richieste API — costruendo chiamate API manualmente, i valori dei parametri hanno spesso bisogno di codifica
- Debug — quando un URL non funziona, decodificarlo rivela i veri valori
Come codificare e decodificare
- Scegli codifica o decodifica — seleziona la direzione. Usa encodeURIComponent per i parametri di query o encodeURI per gli URL completi.
- Incolla il tuo input — inserisci il testo o l'URL. Il risultato si aggiorna istantaneamente.
- Copia l'output — usa il risultato nel tuo codice, nella tua richiesta API o nel tuo browser.
Consigli
- Codifica i valori, non gli URL interi — se codifichi un URL intero, le barre e i due punti che strutturano l'URL saranno anch'essi codificati, il che lo rompe. Codifica solo i valori all'interno dei parametri di query.
- Doppia codifica — codificare una stringa già codificata produce cose come
%2520(il%diventa%25). Se il tuo URL sembra sbagliato, verifica se qualcosa è codificato due volte. - Decodifica per fare il debug — quando una richiesta API fallisce o un URL appare illeggibile, decodificalo per vedere i veri valori. Questo rivela spesso il problema immediatamente.
- Usa le funzioni integrate del tuo linguaggio — in codice di produzione, usa sempre
encodeURIComponent()(JavaScript),urllib.parse.quote()(Python) oURLEncoder.encode()(Java) invece di codificare a mano.
Domande frequenti
Qual è la differenza tra encodeURI e encodeURIComponent?
encodeURI preserva i caratteri validi in una struttura di URL (barre, due punti, punti interrogativi). encodeURIComponent codifica tutto tranne lettere, cifre e alcuni caratteri sicuri. Usa encodeURIComponent per i valori di parametri di query, encodeURI per gli URL completi.
Perché gli spazi diventano %20 o +?
Nella codifica URL, gli spazi diventano %20. Nei dati di modulo (application/x-www-form-urlencoded), gli spazi diventano +. Entrambi sono validi nei loro contesti, ma %20 è lo standard universale per gli URL.
Devo codificare i miei URL manualmente?
Nella maggior parte dei casi, il tuo linguaggio o framework si occupa della codifica automaticamente. La codifica manuale è utile quando costruisci URL a mano, fai il debug di richieste API o lavori con stringhe di query contenenti caratteri speciali.
I miei dati vengono inviati a un server?
No. Tutta la codifica e la decodifica avvengono nel tuo browser.