Codifica / decodifica URL
Codifica o decodifica in percentuale componenti URL e query string
Su questo strumento
Caratteri come spazi, e commerciali e lettere non ASCII non possono comparire così come sono in un URL, quindi vengono percent-encoded: uno spazio diventa %20, 你 diventa %E4%BD%A0. Questo strumento codifica il testo per inserirlo in sicurezza negli URL e decodifica le stringhe con percent-escape riportandole a testo leggibile, inclusa la convenzione del + per gli spazi usata nelle query string.
Sono offerte due modalità di codifica perché JavaScript stesso ne ha due: la modalità componente (encodeURIComponent) escapa tutto ciò che potrebbe delimitare un URL, ed è quella che vuoi per un singolo valore di query string; la modalità URI completo (encodeURI) preserva i caratteri strutturali come /, ? e &, per quando stai codificando un intero URL che deve restare navigabile.
La decodifica è rigorosa sulle sequenze % malformate — un % isolato o %ZZ viene segnalato come errore invece di passare in silenzio, che è esattamente come lo tratteranno browser e server.
Domande frequenti
- Quando uso la modalità componente e quando quella URI completo?
- Se codifichi un valore che va dentro un URL (una query di ricerca, un target di redirect, un indirizzo email in un parametro) → modalità componente, così & e = dentro il valore non rompono la query string. Se codifichi un URL completo per la visualizzazione o il trasporto → modalità URI completo, così la struttura dell’URL sopravvive.
- Perché + a volte significa spazio?
- Il formato application/x-www-form-urlencoded — usato dagli invii dei form HTML e dalle query string — storicamente codifica gli spazi come +. Nei percorsi degli URL, + è solo un più. Il decoder qui tratta + come spazio, secondo la semantica delle query string; %20 funziona sempre ovunque.
- Perché la mia stringa è doppiamente codificata (%2520)?
- %25 è la codifica di % stesso, quindi %2520 significa che il testo %20 è stato codificato una seconda volta. Succede quando due livelli di un sistema codificano entrambi. Esegui la decodifica due volte qui per srotolarla, poi sistema il livello che non dovrebbe codificare.
- I caratteri Unicode sono gestiti correttamente?
- Sì — il testo viene prima codificato in UTF-8 e ogni byte viene percent-escaped, secondo lo standard WHATWG URL. Ecco perché un carattere CJK diventa tre gruppi %XX.