Menu

Codificatore / decodificatore URL

Codifica e decodifica in sicurezza i componenti degli URL.

Di Nethanel Bar, Co-founder & CEO

Ultimo aggiornamento

Vuoi imparare a programmare sul serio?

Coddy ti insegna facendoti scrivere codice vero nel browser: lezioni interattive, feedback immediato e aiuto dall'AI quando ti blocchi.

Cos'è un URL encoder?

Un URL encoder (detto anche percent-encoder o URI encoder) sostituisce i caratteri riservati o non sicuri negli URL con % seguito da due cifre esadecimali. Gli sviluppatori lo usano per costruire query string, fare l'escape dei segmenti di percorso, condividere URL con spazi o caratteri non ASCII e fare debug dei redirect.

Gli URL sono limitati a un piccolo insieme di caratteri ASCII. Tutto ciò che ne resta fuori (spazi, accenti, emoji o simboli riservati come ?, #, &, = quando sono usati come dati) va codificato in percentuale per arrivare intatto dal browser al server.

JavaScript offre due funzioni di codifica: encodeURI (mantiene la struttura dell'URL: /, ?, #, &) e encodeURIComponent (codifica tutto ciò che è riservato). Usa encodeURIComponent per i *valori* che inserisci nelle query string ed encodeURI per gli *URL completi* che vuoi mantenere funzionanti.

Cosa impari codificando gli URL

  • Il percent-encoding sostituisce un singolo byte con % più due cifre esadecimali: per esempio, uno spazio diventa %20.
  • I caratteri riservati (: / ? # & = +) hanno un significato nella struttura dell'URL. Vanno codificati quando sono usati come dati, non come separatori.
  • Il testo non ASCII (accenti, emoji, cirillico, CJK) viene prima trasformato in byte UTF-8, poi ogni byte viene codificato in percentuale.
  • encodeURI lascia intatta la struttura dell'URL; encodeURIComponent codifica tutto ciò che è riservato: usa quella giusta al posto giusto.

Come codificare e decodificare URL passo per passo

  1. Scegli la direzione

    Scegli Codifica se hai testo grezzo e vuoi renderlo sicuro per un URL. Scegli Decodifica se hai una stringa con % e vuoi riottenere il testo originale.

  2. Scegli la modalità di codifica

    Scegli encodeURIComponent (codifica tutto ciò che è riservato) per i valori delle query string; scegli encodeURI (mantiene la struttura) per gli URL completi.

  3. Incolla l'input

    Incolla il testo grezzo o l'URL codificato. Funziona anche con input su più righe, per decodificare in blocco.

  4. Copia il risultato

    Copia il valore codificato o decodificato. La conversione gira in locale nel tuo browser, quindi eventuali dati riservati negli URL restano sul tuo computer.

Riferimento rapido delle codifiche URL più comuni

I caratteri che vedrai codificati più spesso, con la loro forma in percent-encoding. La semantica dei caratteri riservati viene dall'RFC 3986.

CarattereCodificatoPerché
spazio%20Gli spazi non sono ammessi negli URL
!%21Riservato da alcuni server
#%23Indica l'inizio di un frammento
$%24Carattere riservato
&%26Separa i parametri della query
+%2BSignifica spazio nei body form-encoded
/%2FSeparatore dei percorsi
:%3ASepara schema e host
=%3DSepara chiave e valore nella query string
?%3FIndica l'inizio della query string
@%40Separa userinfo e host
byte UTF-8%C3%A9Ogni byte non ASCII viene codificato

Esempi di codifica URL da provare

Codificare una ricerca

Grezzo

hello world & more

Codificato

hello%20world%20%26%20more

Gli spazi diventano %20 e la & diventa %26, così non viene scambiata per un separatore di parametri.

Codificare caratteri non ASCII

Grezzo

café

Codificato

caf%C3%A9

é corrisponde alla sequenza di byte UTF-8 0xC3 0xA9, quindi la forma codificata ha *due* gruppi %XX per quel singolo carattere.

encodeURI e encodeURIComponent a confronto

Grezzo

https://example.com/path?q=hello world

encodeURI

https://example.com/path?q=hello%20world

encodeURIComponent

https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world

encodeURI lascia intatta la struttura dell'URL (barre, ?, =). encodeURIComponent codifica tutto ciò che è riservato: usala sui valori che inserisci in una query string, mai su un URL intero.

Errori comuni nella codifica degli URL

  • Usare encodeURI per i valori delle query string: & e = sopravvivono alla codifica e rompono il parsing dei parametri.
  • Codificare un URL due volte. %2520 al posto di %20 è il segno classico di un bug di doppia codifica.
  • Dimenticare che + significa spazio nei body application/x-www-form-urlencoded, ma è un + letterale nel percorso o nella query di un URL.
  • Concatenare input grezzo dell'utente in un URL con l'interpolazione di stringhe. Codifica sempre prima il valore.
  • Dare per scontato che decodeURIComponent accetti qualsiasi stringa: lancia un errore se trova un % isolato non seguito da due cifre esadecimali.

Domande frequenti sulla codifica URL

Cos'è la codifica URL?
La codifica URL (detta anche percent-encoding o codifica percentuale) è un modo per rappresentare i caratteri che hanno un significato speciale negli URL, o che non è sicuro trasmettere, sostituendoli con % seguito da due cifre esadecimali.
Che differenza c'è tra encodeURI e encodeURIComponent?
encodeURI mantiene i caratteri strutturali dell'URL (/, ?, #, &, =, +). encodeURIComponent li codifica tutti, ed è quello che ti serve per i singoli *valori* inseriti in un URL: valori dei parametri della query, segmenti di percorso, frammenti. Consulta i riferimenti MDN per encodeURI ed encodeURIComponent.
Perché uno spazio diventa %20?
Gli spazi non sono ammessi negli URL, quindi vengono sostituiti con %20, la codifica percentuale del carattere spazio ASCII (0x20 in esadecimale).
Quando devo fare l'URL encode?
Codifica qualsiasi valore dinamico o inserito dall'utente prima di metterlo in un URL: valori delle query string, segmenti di percorso, destinazioni dei redirect, parametri OAuth. Non dare mai per scontato che un input grezzo sia sicuro per un URL.
La codifica URL si può invertire?
Sì, si chiama URL decode. decodeURI, decodeURIComponent o qualsiasi URL decoder annulla il percent-encoding e restituisce i caratteri originali.

Scopri di più

Altri strumenti per sviluppatori

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA