CodeKitHub
Italiano
Strumenti di codifica

Codificatore/Decodificatore URL online

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

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