Che cos'è questo strumento?
La codifica URL (codifica percentuale) sostituisce i caratteri non consentiti negli URL con un simbolo % seguito dal loro valore in byte in esadecimale: uno spazio diventa %20 e 你 diventa %E4%BD%A0. Senza di essa, caratteri come spazi, &, ? e testo non ASCII comprometterebbero la struttura dell’URL o verrebbero interpretati in modo errato dai server.
Esistono due esigenze comuni, e questo strumento le supporta entrambe: la codifica di un valore da inserire all’interno di un parametro di query (modalità “componente” — codifica anche /, ? e =) e la codifica di un URL completo mantenendone la struttura (modalità “URL completo” — lascia intatti ://, ? e &).
Perché usarlo?
- Crea stringhe di query in tutta sicurezza: gli input dell'utente contenenti i simboli &, = o spazi non comprometteranno il funzionamento dell'URL.
- Decodifica gli URL lunghi codificati presenti nei log, nei dati analitici o nelle catene di reindirizzamento per scoprire cosa contengono effettivamente.
- Gestione corretta del formato UTF-8 per il cinese, le emoji e altri testi non ASCII.
- Due modalità per evitare di codificare accidentalmente i simboli : e / di un intero URL.
- Gratuito, immediato, senza bisogno di caricare file.
Come si usa
- Inserisci il testo o l'URL nella casella di immissione.
- Scegli la modalità: "Componente" per i valori da inserire nei parametri di query, "URL completo" per gli URL interi.
- Fare clic su "Codifica" o "Decodifica".
- Copia il risultato.
Esempio
Input
https://example.com/search?q=hello world & 你好Risultato
Component mode: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Full URL mode: https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BDAnche la modalità "Component" codifica i caratteri di struttura; la modalità "URL completo" li conserva.
Casi d'uso comuni
- Creazione di un URL condivisibile in cui un termine di ricerca o un valore di filtro provenga dall'input dell'utente e possa contenere spazi, il carattere "&" o altri caratteri speciali.
- Decodificare un URL lungo con tracciamento o reindirizzamento proveniente da un’e-mail o da una campagna pubblicitaria per vedere la destinazione effettiva e i parametri prima di cliccarci sopra.
- Individuare il motivo per cui un parametro di query non viene letto correttamente da un server: spesso la causa è un carattere riservato che avrebbe dovuto essere codificato ma non lo è stato.
- Preparazione di un valore in una lingua diversa dall'inglese (cinese, giapponese, arabo, ecc.) da utilizzare in una stringa di query di un URL.
encodeURIComponent vs encodeURI: un confronto pratico
Queste si ricollegano direttamente alle due modalità di questo strumento e corrispondono a vere e proprie funzioni JavaScript già note agli sviluppatori: encodeURIComponent (modalità componente) codifica tutto tranne un piccolo insieme di caratteri non riservati, rendendolo sicuro per qualsiasi singolo valore inserito in un URL — è ciò che si utilizza per un parametro di query, un segmento di percorso o un valore di frammento hash. encodeURI (modalità URL completo) lascia inalterati i caratteri strutturali dell’URL (:, /, ?, #, &, =) poiché presuppone che si stia codificando un URL completo e già strutturato, non un valore grezzo; utilizzarla su un singolo valore di parametro non codificherebbe i caratteri & o = che quel valore potrebbe contenere, il che rappresenta l’errore più comune che si commette quando si sceglie la modalità sbagliata.
Caratteri riservati e non riservati
La specifica URL (RFC 3986) suddivide i caratteri in due gruppi: i caratteri non riservati (lettere, cifre, - _ . ~) sono sempre sicuri e non vengono mai codificati, mentre i caratteri riservati (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) hanno un significato speciale nella struttura degli URL e devono essere codificati solo quando compaiono come dati letterali anziché come segni di punteggiatura strutturale. È proprio per questo che esistono le due modalità: la modalità a componenti tratta i caratteri riservati come dati da proteggere, mentre la modalità URL completo li tratta come struttura da preservare. Comprendere questa distinzione è più utile che memorizzare quando utilizzare una modalità piuttosto che l’altra, poiché spiega perché lo stesso carattere (come &) a volte viene codificato e altre volte lasciato così com’è, a seconda del ruolo che ricopre in uno specifico URL.
Domande frequenti
Quando è meglio utilizzare la modalità "component" rispetto alla modalità "URL completo"?
Modalità "componente" (encodeURIComponent) quando si codifica un singolo valore da inserire all'interno di un parametro di query: codifica i caratteri /, ?, & e = in modo che non compromettano il funzionamento dell'URL. Modalità "URL completo" (encodeURI) quando si codifica un URL completo: mantiene i caratteri strutturali in modo che l'URL continui a funzionare.
Perché al posto del segno "+" per gli spazi è apparso il simbolo "%20"?
Entrambe le forme sono valide in contesti diversi. %20 è la codifica percentuale universale per lo spazio; + indica lo spazio solo all'interno delle stringhe di query che utilizzano il vecchio formato application/x-www-form-urlencoded. Questo strumento utilizza %20, che funziona ovunque.
Perché la decodifica fallisce generando un errore?
L'input contiene una sequenza di caratteri "%" non valida, ad esempio un carattere "%" non seguito da due cifre esadecimali. Ciò accade spesso quando un URL è stato troncato o sottoposto a doppia decodifica. Correggere o rimuovere la sequenza di caratteri "%" non valida.
Che cos’è la doppia codifica?
Codifica di testo già codificato: %20 diventa %2520 perché il simbolo % stesso viene codificato come %25. Si tratta di un errore comune: se l'output decodificato contiene ancora codici %, decodificalo ancora una volta.
Supporta i caratteri cinesi e le emoji?
Sì. Il testo è codificato in byte UTF-8, quindi 你好 diventa %E4%BD%A0%E5%A5%BD e viene decodificato perfettamente, proprio come avviene nei browser.