Codifica / Decodifica URL
Codifica in percentuale un testo per un uso sicuro in un URL, o decodifica un URL codificato riportandolo a testo leggibile — entrambe le direzioni, in tempo reale mentre scrivi.
1.053 visualizzazioni
Impossibile decodificare — sequenza di codifica percentuale non valida.
Come Funziona
Un URL può trasportare in sicurezza solo un piccolo alfabeto: lettere, cifre e i quattro simboli "non riservati" - _ . ~. Tutto il resto viene riscritto come tripletta %XX, dove XX è il valore esadecimale del byte del carattere — questa è la codifica percentuale RFC 3986. Anche i caratteri che strutturano un URL (? # / : @ & =, l'insieme "riservato") vengono codificati ogni volta che compaiono dentro un valore anziché come delimitatori, perché una & letterale dentro un valore di query verrebbe altrimenti letta come l'inizio del parametro successivo.
Il testo non ASCII viene codificato byte per byte, non carattere per carattere: lo strumento converte prima la stringa in UTF-8, poi codifica in hex ciascun byte risultante. La lettera turca "ç" è composta da due byte UTF-8 (0xC3 0xA7), quindi diventa due blocchi percentuali, %C3%A7 — non un singolo codice. Un esempio concreto: codificare İstanbul çayı & simit produce %C4%B0stanbul%20%C3%A7ay%C4%B1%20%26%20simit. Nota come lo spazio diventi %20, la & riservata diventi %26, e ogni lettera accentata si espanda nella propria sequenza multi-byte.
In pratica questa distinzione conta soprattutto quando si assemblano richieste a mano: incollare l'URL di un webhook con un valore di query che qualcuno ti ha inviato, decodificare un parametro di tracciamento da un'email di marketing, o capire perché una chiamata API fallisce perché una & o un # non codificati sono finiti in un valore e sono stati letti come delimitatore anziché come dato. Codificare prima il valore, poi sostituire il risultato nel template dell'URL, evita esattamente questa classe di errori.
Cosa Sapere
- %20 contro +: la codifica percentuale RFC 3986 usa sempre
%20per uno spazio. La convenzione+appartiene a uno standard diverso e più vecchio —application/x-www-form-urlencoded, usato quando un form HTML invia dati — e si applica solo a quel formato specifico, mai a un percorso o a un valore di query correttamente codificato in percentuale. Confondere i due è una classica fonte di errori: un server che si aspetta la codifica dei form legge un+vagante in una stringa codificata in percentuale come un segno più letterale, non come uno spazio. - Codifica un componente, non l'intero URL: questo strumento è pensato per un singolo valore di query o segmento di percorso. Far passare l'intero indirizzo (incluso
https://) nell'encoder farebbe l'escape anche delle barre e dei due punti che lo rendono un URL valido, rompendolo del tutto. - Lo stesso motore del tuo browser: richiama le funzioni native del browser
encodeURIComponent/decodeURIComponent, quindi i risultati corrispondono esattamente a quelli che produrrebbe un browser reale o una chiamata JavaScriptfetch— non un'approssimazione. - L'andata e ritorno è senza perdite: codificare una stringa e poi decodificare il risultato restituisce sempre esattamente i byte originali, il che rende facile verificare una codifica fatta a mano decodificandola e confrontandola con il testo di origine.
- Niente lascia il tuo browser: la codifica e la decodifica avvengono interamente lato client, all'istante, senza alcun caricamento.
Domande Frequenti
Perché uno spazio diventa %20 e non +?
La codifica percentuale (RFC 3986) usa %20 per uno spazio; la convenzione + è specifica del vecchio formato application/x-www-form-urlencoded usato nei corpi dei form, non della codifica URL generale. Questo strumento usa la forma standard %20 — confondere le due è una fonte comune di errori quando si costruiscono stringhe di query a mano.
Codifica l'intero URL o solo una parte?
È pensato per codificare un singolo componente (un valore di query, un segmento di percorso) — codificare un intero URL incluso "https://" farebbe l'escape anche delle barre rompendolo, quindi codifica solo la parte che ne ha bisogno, poi incolla quel pezzo nel resto dell'indirizzo.
Perché i caratteri turchi o accentati si trasformano in più di un blocco %XX?
Perché la codifica lavora sui byte, non sui caratteri visibili. UTF-8 rappresenta la maggior parte dei caratteri non ASCII — la ç turca, ğ, ı, ş, o le emoji — usando da due a quattro byte, e ciascun byte ottiene la propria coppia %XX. Così "ç" diventa %C3%A7 (due blocchi) e un'emoji può espandersi a otto caratteri o più una volta codificata.
Qual è la differenza tra caratteri riservati e non riservati?
I caratteri non riservati (lettere, cifre, - _ . ~) sono sempre sicuri e non hanno mai bisogno di essere codificati. I caratteri riservati (? # / : @ & = e pochi altri) hanno un significato strutturale in un URL — separano il percorso dalla query, o un parametro dal successivo — quindi vengono codificati solo quando compaiono come dato letterale dentro un valore, non quando fungono da delimitatori.
Il mio testo viene inviato da qualche parte?
No — la codifica e la decodifica avvengono istantaneamente nel tuo browser; nulla viene caricato su un server.
Strumenti Simili
Segnala un Problema
Codifica / Decodifica URL
Commenti
Ancora nessun commento — scrivi il primo!