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.
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 | %20 | Gli spazi diventano %20 negli URL (oppure + nei body codificati come form). |
| & | %26 | Separa i parametri di query string; va codificato dentro un valore. |
| = | %3D | Separa il nome di un parametro di query dal suo valore. |
| ? | %3F | Indica l'inizio della query string. |
| # | %23 | Indica l'inizio del frammento dell'URL (ancora). |
| / | %2F | Separatore di percorso; codificato solo dentro segmenti di percorso. |
| é | %C3%A9 | I caratteri non ASCII vengono codificati in UTF-8 e poi escapati byte per byte. |
Domande frequenti
Qualcosa viene inviato a un server?
encodeURIComponent / decodeURIComponent. Niente viene registrato o trasmesso. Puoi verificarlo aprendo DevTools > Network — non parte alcuna richiesta mentre digiti.Perché + a volte significa uno spazio?
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?
%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?
? 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.