PK Systems PK Systems
Encoder e decoder

Encoder / Decoder di URL

Codifica e decodifica URL e parametri di query in percent-encoding. Ambito component o URL completo, gira interamente nel tuo browser.

Encoder / Decoder di URL

Component codifica tutto ciò che non è URL-safe (usa encodeURIComponent). URL completo lascia :/?&=# non codificati così che un intero URL resti valido (usa encodeURI).

Output

Cos'è la codifica URL?

La codifica URL (chiamata anche percent-encoding) è un modo di rappresentare i caratteri non sicuri in un URL — spazi, lettere accentate, &, ?, #, e così via — sostituendoli con % seguito dal loro valore esadecimale di byte. Lo standard è definito nella RFC 3986. Per i caratteri non ASCII, i byte provengono dalla codifica UTF-8, quindi é diventa %C3%A9 (due byte). Questo strumento è un wrapper attorno alle funzioni native del browser encodeURIComponent e decodeURIComponent.

Come usare questo encoder

Scegli Codifica o Decodifica nel selettore di modalità, poi scegli l'ambito. Component è il default giusto per i valori di query string, i campi di form e qualsiasi cosa tu inserisca dentro ?key=…. URL completo è per URL interi che vuoi sfuggire al minimo — lascia stare : / ? & = # in modo che i caratteri strutturali mantengano il loro significato. Incolla il testo e il risultato si aggiorna live. Usa Sposta per riportare l'output in input e cambiare modalità per un round-trip rapido.

Component vs URL completo — quale scegliere?

Se stai codificando un singolo valore (un termine di ricerca, una destinazione di redirect, un indirizzo email) e lo incolli in una query string, usa Component. Se stai codificando un URL completo già più o meno valido e vuoi solo escapare le parti non sicure, usa URL completo. I due si comportano in modo molto diverso su caratteri come ? e & — Component li codifica, URL completo no. Nel dubbio, codifica i valori dentro un URL con Component e poi assembla l'URL a mano.

Percent-encoding più comuni

Carattere Codificato Note
space%20Gli spazi diventano %20 negli URL (oppure + nei body codificati come form).
&%26Separa i parametri di query string; va codificato dentro un valore.
=%3DSepara il nome di un parametro di query dal suo valore.
?%3FIndica l'inizio della query string.
#%23Indica l'inizio del frammento dell'URL (ancora).
/%2FSeparatore di percorso; codificato solo dentro segmenti di percorso.
é%C3%A9I caratteri non ASCII vengono codificati in UTF-8 e poi escapati byte per byte.

Domande frequenti

Qualcosa viene inviato a un server?
No. Codifica e decodifica girano entrambe nel tuo browser tramite le API native encodeURIComponent / decodeURIComponent. Niente viene registrato o trasmesso. Puoi verificarlo aprendo DevTools > Network — non parte alcuna richiesta mentre digiti.
Perché + a volte significa uno spazio?
A causa di una codifica diversa (più vecchia) chiamata application/x-www-form-urlencoded, usata per l'invio di form HTML. Lì gli spazi diventano + invece di %20. Il percent-encoding RFC 3986 (quello che usa questo strumento) usa sempre %20. Se stai decodificando il body di un invio form e vedi + al posto degli spazi, sostituiscili con spazi prima di decodificare, oppure usa un decoder dedicato per i form.
Perché la decodifica fallisce con un errore?
decodeURIComponent lancia un URIError se l'input contiene un % orfano non seguito da due cifre esadecimali valide, o se i byte risultanti non sono UTF-8 valido. Le cause più comuni sono stringhe con doppia codifica (decodifica due volte) o URL copia-incollati che sono stati rovinati dall'autocorrezione di un editor.
Qual è la differenza tra encodeURI e encodeURIComponent?
encodeURI è pensato per URL interi — lascia stare : / ? & = # @ e +, perché quei caratteri hanno significato strutturale in un URL. encodeURIComponent è per le singole parti di un URL (un valore di query, un segmento di percorso) e codifica tutto ciò che non è non-riservato. Regola generale: costruisci un URL concatenando come stringa parti passate per encodeURIComponent; non fidarti mai di encodeURI per input dell'utente.
Posso codificare le emoji?
Sì. Il browser converte l'emoji nella sua sequenza di byte UTF-8, poi codifica in percent ogni byte. Una singola emoji come 🎉 diventa quattro escape (%F0%9F%8E%89) perché è un codepoint UTF-8 a 4 byte fuori dal piano base. La decodifica fa l'inverso — il risultato è l'emoji originale.
Devo codificare l'URL più di una volta?
Solo se stai annidando URL dentro URL (un parametro di redirect che punta a un altro URL). Ogni livello di annidamento richiede un passaggio di codifica in più — altrimenti i ? e & dell'URL interno verrebbero interpretati come parte di quello esterno. Per decodificare un valore così, esegui la decodifica lo stesso numero di volte. Se hai accidentalmente codificato due volte un singolo URL, decodificalo due volte e otterrai l'originale.