CodeKitHub
Strumenti di codifica

Codificatore/Decodificatore URL online

Ultimo aggiornamento:

Codifica il testo in formato percentuale per un utilizzo sicuro negli URL, oppure decodifica un URL codificato riportandolo in una forma leggibile. Scegli la modalità "componente" (codifica tutto, per i valori dei parametri di query) o la modalità "URL completo" (mantiene intatta la struttura :// ? &). Funziona interamente nel tuo browser.

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 &).

Una curiosità storica utile da conoscere: secondo lo standard degli URL (RFC 3986) uno spazio si codifica correttamente come %20, ma l'invio dei moduli HTML lo ha tradizionalmente codificato come segno più — ecco perché in giro si vedono sia q=hello%20world sia q=hello+world, e perché nella decodifica dei dati dei moduli il + va a volte gestito a parte.

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

  1. Inserisci il testo o l'URL nella casella di immissione.
  2. Scegli la modalità: "Componente" per i valori da inserire nei parametri di query, "URL completo" per gli URL interi.
  3. Fare clic su "Codifica" o "Decodifica".
  4. 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%BD

Anche 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.

Strumenti correlati