Codificato in Percentuale

Testo Decodificato

Cos’è il Decodificatore URL?

Incolla una stringa codificata in percentuale nel pannello di sinistra e quello di destra mostra l’originale. Sotto il cofano gira decodeURIComponent, che attraversa ogni sequenza %XX dell’input, tratta queste coppie esadecimali come byte UTF-8, e ricostruisce i caratteri originali. Quindi %20 diventa uno spazio, %26 diventa &, %E2%9C%85 diventa una spunta. La direzione inversa vive nel Codificatore URL.

Perché decodificare è insidioso? Perché non tutti i % in giro fanno parte di una sequenza codificata in percentuale valida. Un % isolato seguito da caratteri non esadecimali (%G1, % a fine stringa) è malformato e il decodificatore lancerà un URIError: URI malformed. Questa pagina cattura l’errore e mostra un messaggio amichevole "Codifica non valida" invece di uno stack trace, così un incolla corrotto non rompe la pagina. Le regole esatte di cosa conta come valido vivono in RFC 3986 §2.1 e nello Standard URL WHATWG.

Attenzione alla doppia codifica. Se decodifichi una stringa e l’output contiene ANCORA caratteri % (per esempio ti torna Ava%2520Chen invece di Ava Chen), il valore è stato codificato due volte da qualche parte nella catena — di solito un proxy o un framework che ha auto-codificato un valore già codificato. Decodificarlo di nuovo ti porta al resto del percorso. Le note di Wikipedia sulla doppia codifica hanno una buona spiegazione di come succede. Tutto gira nel tuo browser. Niente upload, niente server, niente log.

Come Usare il Decodificatore URL

Tre passi. La pagina si aggiorna mentre digiti — niente bottone Converti.

1

Incolla la tua stringa codificata o clicca Esempio

Lascia cadere una stringa codificata in percentuale nel pannello di sinistra. Clicca su Esempio per caricare un caso realistico. Input di esempio:

Ava%20Chen%20%26%20friends%3F%20customer%40shop.com%20%20100%25%20off!

Un input malformato (un <code>%</code> isolato, una coppia esadecimale non valida come <code>%G1</code>) emergerà come messaggio "Codifica non valida" nel pannello di output — vedi la <a href="https://tc39.es/ecma262/#sec-decodeuricomponent-encodeduricomponent" target="_blank" rel="noopener">specifica ECMAScript di decodeURIComponent</a> per le regole esatte di fallimento.

2

Leggi l’output decodificato

Il pannello di destra mostra il testo decodificato. %20 diventa uno spazio, %26 diventa &, %3F diventa ?, %40 diventa @, %25 diventa %. Si aggiorna mentre digiti.

3

Copia o scarica

Clicca Copia per mettere il testo decodificato negli appunti, o Scarica per salvarlo come file .txt. Usa Pulisci sul pannello di input per ricominciare. Per andare nell’altra direzione, fai un salto al Codificatore URL.

Quando ti serve davvero

Leggere cosa c’è davvero in un parametro di query

Una URL come ?customer=Ava%20Chen&tag%5B0%5D=red è difficile da scorrere con i codici percentuali ancora al loro posto. Incolla un singolo valore qui e ottieni Ava Chen o tag[0] indietro, il che rende ovvio se il parametro è quello che ti aspettavi. Per scomporre un’intera URL, il Parser URL gestisce i parametri di query automaticamente.

Debuggare valori con doppia codifica

Incolli Ava%2520Chen, decodifichi una volta, ottieni Ava%20Chen. Quel layer extra è la prova del crimine — da qualche parte un proxy, framework o libreria ha codificato il valore una seconda volta. Decodifica di nuovo per ottenere la stringa reale. Le specifiche OAuth sono colpevoli frequenti perché i valori di redirect_uri spesso passano attraverso layer che li ri-codificano "premurosamente".

Ispezionare URL di webhook e analytics nei log

Quando qualcosa fallisce in produzione, l’URL nell’access log è di solito completamente codificato — %7B%22event%22%3A%22signup%22%7D invece del JSON che il webhook ha effettivamente inviato. Incollala qui e ottieni {"event":"signup"}, che è qualcosa che puoi leggere.

Decodificare un magic link o URL di reset password

Quando un cliente come Marco Rivera dice "il link di reset è rotto", il link contiene un token, un’email e un target di redirect — tutti codificati in percentuale. Decodificare il parametro sospetto mostra se l’email è l’indirizzo giusto, se il token è sopravvissuto a un mangling del client mail, o se l’URI di redirect è stato troncato.

Domande Frequenti

Cosa succede con input malformati come un % isolato o %G1?

Il decodeURIComponent nativo lancia un URIError: URI malformed su una sequenza che non è una coppia esadecimale %XX valida. Questa pagina cattura l’errore e scrive "Codifica non valida: ..." nel pannello di output invece di crashare. Le cause più comuni sono un % letterale vagante che avrebbe dovuto essere %25, o un copia-incolla che ha perso una cifra esadecimale finale.

Come capisco se il mio input è doppiamente codificato?

Decodifica una volta. Se l’output ha ancora caratteri % (specialmente %20, %2F, %3A) e doveva essere testo semplice, è stato codificato due volte. Decodifica l’output della prima decodifica. Tre giri sono rari ma possibili — di solito significa una catena di tre servizi diversi che hanno ciascuno codificato lo stesso valore.

E i segni + — dovrebbero diventare spazi?

Non con decodeURIComponent — lascia stare i +. La convenzione +-come-spazio appartiene a application/x-www-form-urlencoded (invii di form HTML), non alla codifica percentuale URL generale. Se il tuo input proviene da un body di form e ha + per gli spazi, esegui prima .replace(/\+/g, "%20"), poi decodifica. La spec WHATWG per application/x-www-form-urlencoded descrive questa situazione a due varianti.

Funziona correttamente in round-trip con Unicode ed emoji?

Sì. Le sequenze UTF-8 multi-byte codificate in percentuale (es. %E2%9C%85 per una spunta, %F0%9F%9A%80 per un razzo) si decodificano direttamente nei caratteri originali. L’unico modo in cui questo fallisce è se il codificatore ha usato un charset non-UTF-8, cosa che i sistemi moderni non fanno.

L’input che incollo qui viene mandato da qualche parte?

No. La decodifica gira interamente nel tuo browser. Nessuna chiamata di rete, nessun log lato server, niente lascia la tua macchina. Token, email, URL firmate — tutto sicuro da incollare.

Quanto può essere grande la stringa che decodifico qui?

C’è un tetto di 256 KB sull’input. Se hai centinaia di KB di testo codificato in percentuale, hai quasi certamente un payload che dovrebbe essere decodificato lato server invece che incollato in uno strumento — payload codificati così grandi di solito indicano un uso improprio della codifica URL per un lavoro che chiede base64 o un body di richiesta.

Altri Strumenti URL e Codifica

Decodificare è un’operazione. Ecco cosa si abbina naturalmente: