URL Encode

Converti testo e parametri con la codifica percentuale per indirizzi web.

Gli indirizzi web accettano soltanto una serie limitata di caratteri standard. Qualsiasi altro simbolo — dagli spazi ai punti interrogativi, fino alle lettere accentate o ai caratteri non latini — deve essere convertito tramite codifica percentuale per evitare che il link si interrompa o generi errori imprevedibili sul server.

Perché i simboli speciali alterano la struttura di un indirizzo

Molti caratteri hanno un ruolo strutturale ben preciso nell’architettura di un URL. Il simbolo ? delimita l’inizio della stringa di query, & separa le diverse coppie di parametri, = divide il nome dal rispettivo valore e # introduce un frammento interno alla pagina.

Se inserisci un carattere riservato dentro un valore — per esempio una ragione sociale come “Rossi & Figli” — il sistema interpreterà quella e commerciale come l’inizio di un nuovo parametro. Il valore originario viene troncato a “Rossi” e compare una chiave vuota inattesa. Codificare il carattere in %26 segnala al ricevente che si tratta di puro dato testuale e non di un delimitatore sintattico.

Come applicare la codifica URL ai tuoi dati

  1. Incolla il testo o il frammento informativo che desideri inserire nell’indirizzo web.
  2. Clicca sul pulsante per elaborare e convertire i caratteri.
  3. Copia il risultato ottenuto e inseriscilo nel parametro di query, nel percorso o nella destinazione di reindirizzamento.
  4. Elabora singolarmente ciascun valore prima dell’assemblaggio definitivo, evitando di inviare l’intero URL già montato.
  5. Verifica la correttezza del contenuto decodificando eventuali stringhe già esistenti.

I caratteri più frequenti nella codifica URL

CarattereForma codificataMotivo della conversione
spazio%20 or +Interrompe la continuità del collegamento nella maggior parte dei contesti
&%26Viene altrimenti interpretato come separatore tra parametri distinti
?%3FViene altrimenti letto come l’inizio dei parametri di query
=%3DViene altrimenti interpretato come separatore tra chiave e valore
#%23Considera tutto ciò che segue come identificatore di frammento
/%2FViene altrimenti trattato come separatore di percorso gerarchico
+%2BPotrebbe altrimenti venire decodificato erroneamente come uno spazio

Codificare i singoli componenti invece dell’intero link

Uno degli sbagli più diffusi consiste nel sottoporre un indirizzo completo a uno strumento di codifica. Questa operazione trasforma anche la sequenza :// e le normali barre divisorie in codici percentuali, restituendo una stringa che nessun server o browser saprà più risolvere.

La prassi corretta prevede di elaborare separatamente ciascun singolo valore e di assemblare l’URL completo solo in un secondo momento. In ambiente JavaScript, per esempio, si ricorre a encodeURIComponent() per i singoli campi e si riserva encodeURI() unicamente ai rari casi in cui occorra ripulire un indirizzo già composto.

Domande frequenti sulla codifica URL

In cosa consiste esattamente la codifica percentuale?

Si tratta di una convenzione che sostituisce i caratteri non ammessi con il segno percentuale seguito dal valore esadecimale del byte corrispondente. Ad esempio lo spazio diventa %20 perché 20 rappresenta il codice esadecimale del carattere spazio nello standard ASCII.

Per quale ragione lo spazio viene a volte sostituito da un segno più?

L’invio dei moduli HTML ha storicamente introdotto l’uso di + per indicare lo spazio all’interno delle stringhe di query. Entrambe le forme sono diffuse: %20 è universalmente valida in qualsiasi parte dell’URL, mentre + è ammesso solo nei parametri di ricerca e mai nel percorso principale.

Quale differenza c’è tra encodeURIComponent ed encodeURI?

La funzione encodeURIComponent si applica ai valori individuali dei parametri poiché converte anche i simboli riservati di controllo. La funzione encodeURI si utilizza invece su un URL intero, intervenendo soltanto sui caratteri non consentiti come gli spazi senza intaccare i delimitatori sintattici.

In che modo vengono gestiti i caratteri speciali e accentati?

I caratteri non compresi nell’alfabeto latino base vengono prima convertiti nella sequenza di byte UTF-8 corrispondente, e ogni singolo byte viene poi codificato con la notazione percentuale. Per questo motivo una lettera accentata produce spesso una combinazione di due blocchi percentuali distinti.

Cosa accade se si effettua la codifica due volte sulla stessa stringa?

La doppia codifica introduce anomalie difficili da individuare: la sequenza %20 viene nuovamente convertita diventando %2520. Quando il server effettuerà la normale decodifica, otterrai come valore finale la stringa testuale %20 invece dell’originario spazio.

Cookie
Abbiamo a cuore i tuoi dati e ci piacerebbe utilizzare i cookie per migliorare la tua esperienza.