Codificatore e Decodificatore URL con Parser URL Integrato
Decodifica o codifica URL in tempo reale con parser URL integrato. Doppia modalità: encodeURI e encodeURIComponent. 100% privato, nessun dato inviato a server online.
Cos'è la Codifica URL (Percent-Encoding)?
La codifica URL, formalmente nota come percent-encoding, è un meccanismo definito nella RFC 3986 per rappresentare nei Uniform Resource Identifier (URI) caratteri che non sono permessi o che hanno un significato speciale. Converte ogni byte non sicuro in un segno di percentuale (%) seguito da due cifre esadecimali — per esempio, uno spazio diventa %20, una e-commerciale diventa %26, e il carattere cinese 中 diventa %E4%B8%AD (i suoi tre byte UTF-8, ciascuno percent-encoded).
Gli URL possono contenere solo un insieme limitato di caratteri del set ASCII. Lettere, cifre e una manciata di simboli (- _ . ~) sono considerati 'non riservati' e possono apparire così come sono. Tutti gli altri caratteri — inclusi spazi, punteggiatura e l'intero range di Unicode — devono essere codificati con percent-encoding per essere trasmessi in sicurezza in un URL. I caratteri riservati come ?, &, =, e # fungono da delimitatori strutturali nella sintassi URL, quindi devono essere codificati anche quando vengono usati come dati letterali piuttosto che come delimitatori.
Il percent-encoding è essenziale in tutto il web: i browser codificano gli invii dei form, le API richiedono parametri di query codificati, i flussi OAuth dipendono da URI di reindirizzamento codificati correttamente, e i nomi di dominio internazionalizzati si basano sulla codifica per i caratteri non ASCII. Sbagliare la codifica porta a link rotti, vulnerabilità di sicurezza (come gli attacchi open redirect) e corruzione dei dati.
Questo strumento fornisce sia le modalità encodeURI che encodeURIComponent, un parser della struttura URL integrato, conversione in tempo reale, e rilevamento della doppia codifica — tutto eseguito privatamente nel tuo browser.
La codifica URL viene spesso usata insieme ad altri strumenti di sviluppo web. Potresti aver bisogno di codificare un URL in Base64 per incorporarlo in un token JWT o in un payload API, oppure formattare dati JSON che contengono stringhe URL per ispezionarne la struttura. Per una panoramica più approfondita, a livello di byte, di come funziona il percent-encoding, leggi la nostra guida completa alla codifica URL per sviluppatori.
// Encode a query parameter value
const param = encodeURIComponent('hello world & goodbye');
console.log(param); // → 'hello%20world%20%26%20goodbye'
// Encode a full URL (preserves structure)
const url = encodeURI('https://example.com/path name?q=hello world');
console.log(url); // → 'https://example.com/path%20name?q=hello%20world'
// Decode a percent-encoded string
const decoded = decodeURIComponent('hello%20world%20%26%20goodbye');
console.log(decoded); // → 'hello world & goodbye'
// Build a URL with encoded parameters
const base = 'https://api.example.com/search';
const query = `?q=${encodeURIComponent('你好')}&lang=zh`;
console.log(base + query); // → 'https://api.example.com/search?q=%E4%BD%A0%E5%A5%BD&lang=zh' Caratteristiche Principali
Doppia Modalità di Codifica
Cambia tra encodeURI (preserva la struttura dell'URL) e encodeURIComponent (codifica tutto per i valori dei parametri) per adattarti esattamente al tuo caso d'uso.
Parser URL Integrato
Scompone automaticamente qualsiasi URL in protocollo, host, porta, percorso, parametri di query e frammento — ogni campo è modificabile e può essere ricostruito in un nuovo URL.
Conversione in Tempo Reale
Codifica e decodifica istantaneamente mentre digiti — nessun pulsante da cliccare, i risultati appaiono immediatamente nell'altra area a ogni tasto premuto.
100% Basato sul Browser
Tutta l'elaborazione avviene localmente nel tuo browser usando le API native di JavaScript. I tuoi dati non lasciano mai il tuo dispositivo — nessun upload sul server, nessun tracciamento.
Pieno Supporto UTF-8
Gestisce correttamente cinese, giapponese, coreano, arabo, emoji e qualsiasi testo Unicode tramite una corretta codifica e decodifica dei byte UTF-8.
Rilevamento Doppia Codifica
Rileva automaticamente e avvisa su problemi di doppia codifica come %2520 (un %20 percent-encoded), aiutandoti a evitare uno degli errori di codifica URL più comuni.
Esempi
Decodifica un URL Illeggibile
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%26lang%3Den
https://example.com/search?q=hello world&lang=en
Un URL completamente codificato in percent-encoding viene decodificato nella sua forma leggibile, rivelando i parametri di query e la struttura originali
Caratteri Cinesi
https://example.com/search?q=你好世界
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C
I caratteri cinesi vengono convertiti nelle loro sequenze di byte UTF-8 e codificati con percent-encoding
Parametri di Query
https://example.com/api?name=John Doe&role=admin&lang=en&sort=date desc
https://example.com/api?name=John%20Doe&role=admin&lang=en&sort=date%20desc
Gli spazi e i caratteri speciali nei valori dei parametri di query vengono codificati con percent-encoding mantenendo intatta la struttura dell'URL
URL Completo
https://user:pass@example.com:8080/path/to/page?key=value&arr[]=1#section-2
https://user:pass@example.com:8080/path/to/page?key=value&arr%5B%5D=1#section-2
Un URL completo con credenziali, porta, percorso, parametri di query con parentesi quadre e un identificatore di frammento
URI di Reindirizzamento OAuth
https://auth.example.com/authorize?redirect_uri=https://myapp.com/callback?code=abc&state=xyz
https://auth.example.com/authorize?redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz
Il valore di redirect_uri contiene a sua volta un URL completo che deve essere codificato affinché i suoi caratteri speciali non vengano interpretati come parte dell'URL esterno
Come Usare
- 1
Inserisci un URL o una Stringa Codificata
Incolla un URL nell'area decodificata per codificarlo, oppure incolla una stringa percent-encoded nell'area codificata per decodificarla. Seleziona la modalità encodeURI o encodeURIComponent in base al tuo caso d'uso.
- 2
Vedi i Risultati e la Struttura Analizzata
L'altra area si aggiorna istantaneamente mentre digiti. Il parser URL scompone l'URL in protocollo, host, porta, percorso, parametri di query e frammento — tutto modificabile.
- 3
Copia o Ricostruisci
Clicca Copia per copiare il risultato codificato o decodificato. Modifica i singoli componenti dell'URL e clicca Ricostruisci per costruire un nuovo URL dalle parti modificate.
Errori Comuni
Doppia Codifica (%2520 invece di %20)
La doppia codifica si verifica quando un URL già codificato viene codificato di nuovo. Il % in %20 viene codificato come %25, trasformando %20 in %2520. Questo rompe l'URL perché il server vede una stringa letterale %20 invece di uno spazio.
https://example.com/path%2520with%2520spaces
https://example.com/path%20with%20spaces
Spazio Codificato come + nei Segmenti di Percorso
Il carattere + rappresenta uno spazio solo nel formato application/x-www-form-urlencoded (query string dei form HTML). Nei segmenti di percorso URL, + viene interpretato come un segno più letterale, non come uno spazio. Usa sempre %20 per gli spazi nei segmenti di percorso.
https://example.com/my+file+name.pdf
https://example.com/my%20file%20name.pdf
Usare encodeURI sui Valori dei Parametri di Query
encodeURI() non codifica &, =, o altri caratteri riservati, quindi usarlo su un valore di parametro che contiene questi caratteri corrompe la struttura della query string.
encodeURI('key=value&more') → 'key=value&more' (& not encoded!) encodeURIComponent('key=value&more') → 'key%3Dvalue%26more' Assumere una Codifica Diversa da UTF-8
Alcuni sistemi legacy usano codifiche come Latin-1 o Shift-JIS per i parametri URL. Gli standard moderni richiedono UTF-8. Decodificare un parametro codificato in Shift-JIS con un decodificatore UTF-8 produce testo corrotto.
Decoding %82%B1%82%F1 as UTF-8 (this is Shift-JIS for こん)
Using UTF-8: %E3%81%93%E3%82%93 correctly decodes to こん
Codificare Percorsi Relativi Senza Contesto
Codificare un percorso relativo come ../images/photo.jpg con encodeURIComponent trasforma le barre e i punti in sequenze percent-encoded, rompendo la struttura del percorso. Usa encodeURI() o codifica solo i singoli segmenti del percorso.
encodeURIComponent('../images/photo.jpg') → '..%2Fimages%2Fphoto.jpg' Encode each segment: '../images/' + encodeURIComponent('my photo.jpg') Casi d'Uso Comuni
- Debug di URL Illeggibili
- Decodifica URL percent-encoded dai log dei server, dai messaggi di errore o dagli strumenti per sviluppatori del browser per leggere il testo originale leggibile.
- Sviluppo API
- Codifica i valori dei parametri di query per le chiamate API REST, assicurandoti che caratteri speciali come &, =, e gli spazi non rompano l'URL della richiesta.
- Configurazione del Flusso OAuth
- Codifica correttamente redirect_uri e altri parametri URL negli URL di autorizzazione OAuth per prevenire fallimenti di autenticazione.
- URL Internazionalizzati
- Codifica e decodifica URL contenenti caratteri cinesi, giapponesi, coreani, arabi o altri caratteri non ASCII per applicazioni web internazionalizzate.
- Analisi di Link di Marketing
- Decodifica URL di tracciamento da campagne email e piattaforme pubblicitarie per comprendere i parametri UTM incorporati e le catene di reindirizzamento.
- Ispezione della Struttura URL
- Analizza URL complessi nelle loro parti componenti — protocollo, host, porta, percorso, parametri di query e frammento — per analisi e modifica.
Dettagli Tecnici
- Caratteri Riservati e Non Riservati della RFC 3986
- La RFC 3986 definisce i caratteri non riservati (A-Z, a-z, 0-9, -, ., _, ~) che non hanno mai bisogno di codifica, e i caratteri riservati (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) che fungono da delimitatori URI e devono essere codificati con percent-encoding quando usati come dati.
- Flusso di Codifica dei Byte UTF-8
- I caratteri non ASCII vengono prima convertiti nel loro code point Unicode, poi codificati come byte UTF-8 (1-4 byte a seconda dell'intervallo del code point), e infine ogni byte viene codificato con percent-encoding come %XX. Per esempio: é (U+00E9) → byte UTF-8 C3 A9 → %C3%A9. L'emoji 🎉 (U+1F389) → byte UTF-8 F0 9F 8E 89 → %F0%9F%8E%89.
- Terminologia URL vs URI
- Un URI (Uniform Resource Identifier) è il termine generale per qualsiasi stringa identificatrice. Un URL (Uniform Resource Locator) è un URI che specifica anche il meccanismo di accesso (come https://). Le regole di codifica nella RFC 3986 si applicano a tutti gli URI. L'API di JavaScript usa la terminologia URI (encodeURI, decodeURI), mentre l'uso quotidiano preferisce URL.
Migliori Pratiche
- Usa la Modalità Giusta per il Compito
- Usa encodeURIComponent() per le singole chiavi e i valori dei parametri di query. Usa encodeURI() solo quando hai un URL completo e vuoi codificare i caratteri non sicuri senza romperne la struttura. Non usare mai encodeURI() su valori di parametri che potrebbero contenere &, =, o altri caratteri riservati.
- Evita la Doppia Codifica
- Prima di codificare una stringa, controlla se è già codificata. Cerca sequenze % esistenti. Codificare una stringa già codificata trasforma %20 in %2520, %3D in %253D, e così via. Se non sei sicuro, decodifica prima, poi codifica una sola volta.
- Decodifica sul Lato Server
- La maggior parte dei framework web decodifica automaticamente i parametri URL prima che il codice della tua applicazione li veda. Evita di decodificare manualmente parametri che il tuo framework ha già decodificato — questo può causare problemi se il valore originale conteneva sequenze percent letterali.
- Codifica i Valori per OAuth e API Signing
- Le stringhe base delle firme OAuth 1.0 e molti algoritmi di firma API richiedono un percent-encoding rigoroso secondo la RFC 3986. Usa encodeURIComponent() e poi sostituisci eventuali caratteri rimanenti che non codifica (come !, ', (, ), *) con i loro equivalenti percent-encoded se la specifica lo richiede.
Domande Frequenti
Cos'è la codifica URL e perché è necessaria?
Qual è la differenza tra encodeURI e encodeURIComponent?
La codifica URL è uguale alla codifica HTML?
Perché il mio URL si rompe quando lo uso in un comando curl?
Perché i caratteri cinesi diventano stringhe come %E4%B8%AD negli URL?
Devo codificare il parametro redirect_uri di OAuth?
Qual è la differenza tra querystring di Node.js e URLSearchParams?
Come codifico un URL in Python, JavaScript e Java?
Quali caratteri non vengono codificati dalla codifica URL?
Qual è la differenza tra + e %20 per codificare gli spazi?
Come gestisce la codifica URL le emoji?
La codifica URL può essere usata per cifratura o sicurezza?
Qual è la lunghezza massima di un URL?
Qual è la differenza tra un URL e un URI?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore e codificatore Base64
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Formattatore e Validatore JSON
Codifica e formattazione
Formatta, valida e abbellisci JSON direttamente nel browser. Strumento online gratuito con controllo sintassi, rilevamento errori, minifica e copia in un clic. 100% privato.
Convertitore di Basi Numeriche — Bin, Hex, Ott, Dec
Strumenti di conversione
Converti istantaneamente tra binario, esadecimale, decimale, ottale e qualsiasi base (2-36). Strumento online gratuito e privato: tutta l'elaborazione avviene nel tuo browser.
Comprimi Immagini Online — JPEG, PNG e WebP
Strumenti di conversione
Comprimi JPEG, PNG e WebP fino all'80% in meno — nel tuo browser, senza upload. Batch di 20 immagini, regola la qualità, confronta prima e dopo. Gratuito e privato.
Convertitore di Unità di Lunghezza — Metrico e Imperiale
Strumenti di conversione
Converti online tra 16 unità di lunghezza all'istante — metriche, imperiali, nautiche e astronomiche. 1 pollice = 2.54 cm. Gratis, privato, gira nel browser.
Generatore Hash MD5 e Strumento Checksum File
Strumenti di sicurezza
Genera hash MD5, SHA-256, SHA-1 e SHA-512 online gratis. Calcola l'hash di testo o file nel browser, verifica checksum e copia i risultati. Senza registrazione.