Utilia

Codifica e decodifica URL

Codificatore e decodificatore URL gratuito. Codifica parametri o URL completi, decodifica le sequenze %XX e gestisci + come spazio, tutto nel browser.

Modalità

Come usare il codificatore e decodificatore URL

  1. Scegli Codifica per trasformare il testo in una forma sicura per gli URL, oppure Decodifica per riportare il testo con percent-encoding a caratteri leggibili.
  2. Quando codifichi, scegli una modalità: Componente per un singolo valore (come un parametro della query string o un segmento del percorso), oppure URL completo per codificare un indirizzo intero mantenendone intatta la struttura.
  3. Quando decodifichi dati che arrivano da un form HTML o da una query string, attiva Interpreta + come spazio così che i segni + diventino spazi.
  4. Incolla il testo e copia il risultato. Se una sequenza percentuale non è valida, lo strumento segnala un errore invece di tirare a indovinare.

Che cos’è la codifica URL?

Gli URL possono contenere solo un insieme limitato di caratteri ASCII. Alcuni caratteri, come /, ?, #, & e =, sono riservati perché separano le parti di un indirizzo: il percorso, la query string e il frammento. Altri, come gli spazi, le virgolette, le lettere accentate o le emoji, semplicemente non sono ammessi. La codifica URL, detta anche percent-encoding, risolve entrambi i problemi sostituendo ogni byte problematico con un % seguito da due cifre esadecimali.

Il testo viene prima convertito in byte UTF-8 e ogni byte viene codificato separatamente. Uno spazio diventa %20, una e commerciale diventa %26, è (due byte in UTF-8) diventa %C3%A8 e l’emoji 😀 (quattro byte) diventa %F0%9F%98%80. I caratteri non riservati, cioè lettere, cifre e - _ . ~, non devono mai essere codificati.

Modalità componente o URL completo

Scegliere la modalità giusta è la decisione più importante, e sbagliarla è una fonte classica di bug.

La modalità Componente funziona come encodeURIComponent di JavaScript. Codifica tutti i caratteri riservati, così il risultato può essere inserito senza rischi in una singola parte dell’URL. Usala per i valori dei parametri, i segmenti del percorso o qualsiasi cosa digitata da un utente. Per esempio, il termine di ricerca pane & vino diventa pane%20%26%20vino. Se non codificassi la &, il server leggerebbe vino come l’inizio di un nuovo parametro.

La modalità URL completo funziona come encodeURI. Presuppone che l’input sia già un indirizzo completo e conserva i caratteri che gli danno struttura, come : / ? # & e =, codificando invece spazi e caratteri non ASCII. Usala per sistemare un indirizzo come https://example.com/caffè menu?q=tè in https://example.com/caff%C3%A8%20menu?q=t%C3%A8. Non usarla sui singoli valori: una & all’interno di un valore resterebbe non codificata e romperebbe la query string.

Una buona regola pratica: costruisci gli URL a partire dalle parti, codifica ogni valore in modalità componente e usa la modalità URL completo solo per gli indirizzi che ricevi già assemblati.

Il segno + e la codifica dei form

I form HTML inviati con application/x-www-form-urlencoded codificano gli spazi come + invece di %20. È per questo che gli URL di ricerca spesso hanno un aspetto come ?q=ciao+mondo. La decodifica percentuale standard lascia + invariato, perché in un percorso il più è solo un più. Quando decodifichi una query string o dati di un form, attiva Interpreta + come spazio per ottenere ciao mondo. Lascialo disattivato per i percorsi e per i valori in cui un + letterale conta, come i numeri di telefono internazionali (+39…) o i dati Base64. Un vero segno più nei dati di un form viene inviato come %2B, quindi viene decodificato correttamente in entrambi i casi.

Privacy

La codifica e la decodifica avvengono interamente nel tuo browser. Niente di ciò che incolli, compresi URL che possono contenere token, ID di sessione o dati personali, viene inviato a un server o memorizzato.

Domande frequenti

Perché la decodifica fallisce con un errore di codifica non valida?

Un % deve essere seguito esattamente da due cifre esadecimali, e i byte risultanti devono formare UTF-8 valido. Stringhe come 100%, %G1 o una sequenza troncata come %E2%82 non si possono decodificare in modo affidabile, quindi lo strumento segnala il problema invece di produrre testo errato. Per includere un simbolo di percentuale letterale, codificalo come %25.

Che differenza c'è tra %20 e +?

Entrambi possono rappresentare uno spazio, ma in contesti diversi. %20 è valido ovunque in un URL. + significa spazio solo nelle query string codificate come form; altrove è un segno più letterale.

Devo codificare un intero URL in modalità componente?

Solo se l’intero URL è a sua volta un valore all’interno di un altro URL, per esempio un parametro redirect=. In quel caso la modalità componente è esattamente quella giusta: https://a.com/?x=1 diventa https%3A%2F%2Fa.com%2F%3Fx%3D1.

Perché il mio testo è codificato due volte?

La doppia codifica avviene quando un testo già codificato viene codificato di nuovo, trasformando %20 in %2520. Decodifica una volta per verificare e assicurati che ogni valore venga codificato solo nel momento in cui viene inserito nell’URL.

La codifica URL nasconde o protegge i dati?

No. Il percent-encoding è completamente reversibile e non offre alcuna sicurezza. I valori sensibili negli URL possono finire nella cronologia del browser e nei log dei server, quindi evita del tutto di mettere segreti negli URL.