Come si usa
- Scegli Codifica o Decodifica.
- Scegli Component per un singolo valore (ad esempio un parametro di query) oppure URL completa per un indirizzo intero.
- Scrivi o incolla il testo. Il risultato appare subito a destra (o sotto sui telefoni).
- Copia il risultato oppure usa “Usa il risultato come input” per invertire l'operazione e verificare il percorso inverso.
Come funziona
Gli URL possono contenere solo un insieme limitato di caratteri ASCII. Tutto il resto, inclusi spazi, lettere accentate ed emoji, viene scritto con sequenze percentuali: il carattere viene convertito in byte UTF-8 e ogni byte diventa % seguito da due cifre esadecimali. Uno spazio diventa %20, é diventa %C3%A9 ed € diventa %E2%82%AC.
La modalità Component usa encodeURIComponent e decodeURIComponent di JavaScript. Codifica tutti i caratteri con un significato speciale in un URL, inclusi / ? # & = + : e @, così il risultato può essere inserito in sicurezza in un valore di query o in un singolo segmento del percorso. Lascia invariati solo A–Z, a–z, 0–9 e - _ . ! ~ * ' ( ).
La modalità URL completa usa encodeURI e decodeURI. Presuppone che l'input sia già un URL completo e lascia invariati i caratteri riservati ; , / ? : @ & = + $ #, così l'indirizzo continua a funzionare. Durante la decodifica, decodeURI lascia invariati anche gli escape di questi caratteri riservati: %2F resta %2F, perché convertirlo in / cambierebbe il significato dell'URL.
L'opzione dati modulo segue application/x-www-form-urlencoded, il formato usato dai browser per inviare i moduli HTML: uno spazio viene scritto come + invece che come %20. Quando si decodifica con questa opzione, ogni + diventa uno spazio; un vero segno più deve quindi essere scritto come %2B.
L'input non valido non viene mai eliminato. Se un % non è seguito da due cifre esadecimali o una sequenza di escape non forma UTF-8 valido, lo strumento indica dove si trova il problema e conserva il testo, così è possibile correggerlo.
Esempi
Inserire un valore in una query string
Per cercare “Rock & Roll” all'indirizzo https://example.com/search?q=…, codifica solo il valore in modalità Component: Rock%20%26%20Roll. Senza codifica, & terminerebbe il parametro q e ne inizierebbe uno nuovo chiamato “ Roll”.
Correggere un URL con spazi e accenti
In modalità URL completa, https://example.com/menu/crème brûlée.html diventa https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Le barre e i due punti restano invariati, quindi il link continua a funzionare.
Leggere i dati di un modulo registrati nel log
Un log del server mostra name=Jane+Doe&city=S%C3%A3o+Paulo. Decodificalo in modalità Component con l'opzione “Considera + come uno spazio” attivata per leggere name=Jane Doe&city=São Paulo.
Domande frequenti
Qual è la differenza tra encodeURI e encodeURIComponent?
encodeURIComponent codifica i caratteri che separano le parti di un URL (/ ? # & = + : @ e altri), quindi è pensato per una singola parte di un URL. encodeURI mantiene questi caratteri, quindi è pensato per un URL completo. Usare encodeURI su un valore di query è un errore comune: un & o un = all'interno del valore non verrebbe codificato e comprometterebbe la query string.
Uno spazio va scritto come %20 o +?
Nel percorso di un URL, uno spazio è sempre %20. In una query string si usano entrambi: %20 è valido ovunque, mentre + indica uno spazio solo nei dati codificati per i moduli (application/x-www-form-urlencoded), il formato usato dai moduli HTML e da molti framework server per leggere le query string. In caso di dubbio, usa %20.
Perché ricevo un errore durante la decodifica?
La decodifica non riesce quando un segno % non è seguito da due cifre esadecimali (ad esempio “50% off”) o quando i byte codificati non sono UTF-8 valido. Di solito questo significa che il testo è stato codificato con un set di caratteri meno recente, come Latin-1 (é come %E9 invece che %C3%A9). Il messaggio di errore indica la posizione del problema.
Perché %2F non è diventato una barra in modalità URL completa?
decodeURI mantiene intenzionalmente gli escape dei caratteri riservati come / ? # & e =, perché decodificarli potrebbe cambiare il modo in cui l'URL viene suddiviso in parti. Usa la modalità Component per decodificare tutti gli escape.
Quali caratteri non vengono mai codificati?
Entrambe le modalità lasciano invariati A–Z, a–z, 0–9 e - _ . ! ~ * ' ( ). La modalità URL completa lascia invariati anche ; , / ? : @ & = + $ e #.
Privacy
La codifica e la decodifica avvengono interamente nel browser, usando le funzioni JavaScript integrate. Il testo e gli URL non vengono caricati, memorizzati né inclusi nelle statistiche.