Che cos’è la codifica URL
La codifica e decodifica URL esiste perché un indirizzo web può contenere solo un piccolo insieme di caratteri: lettere, cifre e pochi simboli come -, ., _ e ~. Altri caratteri hanno compiti speciali. ? apre la query string, & separa i parametri, = unisce un nome a un valore e # apre un frammento. Spazi e lettere al di fuori dell’alfabeto inglese non sono ammessi affatto, e questo vale anche per le vocali accentate dell’italiano.
La codifica URL, detta anche percent encoding o codifica percentuale, risolve il problema. Ogni carattere non sicuro viene convertito in byte UTF-8, e ogni byte viene scritto come % seguito da due cifre esadecimali. Uno spazio diventa %20, & diventa %26 ed é diventa %C3%A9.
Come usare il codificatore URL
Codificare. Scrivi o incolla il testo in Testo semplice. La versione codificata compare in URL codificato. Premi Copia per prenderla.
Decodificare. Incolla il testo codificato in URL codificato. Il testo leggibile compare a sinistra.
Scegli cosa stai codificando con il menu Cosa stai codificando? sotto i riquadri:
- Un valore o una parte di URL (encodeURIComponent) è la scelta giusta quasi sempre. Codifica tutto tranne lettere, cifre e
- _ . ~. Usalo per termini di ricerca, valori dei parametri e segmenti del percorso. - Un URL completo, mantiene : / ? & = (encodeURI) lascia intatta la struttura dell’indirizzo e codifica solo spazi, lettere non inglesi e caratteri simili.
- Dati di un modulo, spazi come + (x-www-form-urlencoded) corrisponde a ciò che invia il browser quando invii un modulo HTML. Gli spazi diventano
+e, in decodifica,+torna a essere uno spazio.
Cancella svuota entrambi i riquadri.
Come funziona
Il testo viene prima trasformato in byte UTF-8. Ogni byte non ammesso viene sostituito da % e dal suo valore in esadecimale. La lettera é in UTF-8 occupa due byte, quindi diventa due sequenze: %C3%A9. Un’emoji occupa quattro byte, quindi diventa quattro sequenze.
In modalità componente questo strumento va un passo oltre la semplice funzione del browser. Codifica anche ! ' ( ) *, seguendo la RFC 3986. Questi caratteri sono tecnicamente ammessi, ma hanno causato problemi con alcuni server e client di posta.
La decodifica fa il percorso inverso. Le sequenze %XX consecutive vengono raccolte in byte e lette come UTF-8.
Esempi
| Input | Componente | URL completo | Dati di modulo |
|---|---|---|---|
hello world |
hello%20world |
hello%20world |
hello+world |
Tom & Jerry |
Tom%20%26%20Jerry |
Tom%20&%20Jerry |
Tom+%26+Jerry |
a+b=c |
a%2Bb%3Dc |
a+b=c |
a%2Bb%3Dc |
50% off |
50%25%20off |
50%25%20off |
50%25+off |
café |
caf%C3%A9 |
caf%C3%A9 |
caf%C3%A9 |
it's (ok)*! |
it%27s%20%28ok%29%2A%21 |
it's%20(ok)*! |
it%27s+%28ok%29%2A%21 |
Con un testo italiano: caffè & cornetto in modalità componente diventa caff%C3%A8%20%26%20cornetto, e come dati di modulo caff%C3%A8+%26+cornetto. La è, come la é, occupa due byte.
Un indirizzo completo mostra meglio la differenza. https://example.com/a b?q=1&r=é in modalità URL completo diventa https://example.com/a%20b?q=1&r=%C3%A9, che funziona ancora come link. In modalità componente lo stesso testo diventa https%3A%2F%2Fexample.com%2Fa%20b%3Fq%3D1%26r%3D%C3%A9, che è corretto solo quando l’intero indirizzo è a sua volta il valore di un parametro, come la destinazione di un reindirizzamento.
Consigli e limiti
- Codifica i valori, non i link interi. Costruisci prima il link, poi codifica solo i pezzi che inserisci.
- Attenzione alla doppia codifica. Se vedi
%2520, il testo è stato codificato due volte. Decodificalo una volta. - + non è sempre uno spazio. Significa spazio solo nei dati dei moduli. In un percorso,
+è un normale segno più. Scegli la modalità giusta prima di decodificare. - Codificare non è nascondere. Chiunque può leggere un testo codificato. Non mettere password nei link.
- Maiuscole e minuscole non contano nelle sequenze.
%c3%a9e%C3%A9significano la stessa cosa. Lo stile più diffuso è il maiuscolo.
Altri modi per farlo
JavaScript. encodeURIComponent('Tom & Jerry') restituisce Tom%20%26%20Jerry. Usa decodeURIComponent per tornare indietro. Nota che genera un errore con una sequenza rovinata come %zz, mentre questo strumento la lascia al suo posto.
Python. urllib.parse.quote('Tom & Jerry', safe='') restituisce Tom%20%26%20Jerry, e urllib.parse.quote_plus restituisce Tom+%26+Jerry.
Excel. =ENCODEURL(A1) codifica in percentuale il testo della cella A1 (Excel 2013 e successivi su Windows). Nell’Excel italiano la funzione si chiama CODIFICA.URL.
Riga di comando. curl --data-urlencode "q=Tom & Jerry" codifica il valore di un modulo mentre lo invia.
Strumenti correlati
Stai creando link per una campagna? Il generatore di link UTM codifica ogni parametro al posto tuo. Per trasformare un titolo in un percorso pulito, usa il generatore di slug. Per dati binari dentro un URL, la codifica Base64 con l’opzione sicura per URL è spesso più adatta.