In questo articolo
Cos'è la codifica URL?
La codifica URL (detta anche percent-encoding) converte i caratteri non sicuri o riservati negli URL in un formato sicuro. Ogni carattere non sicuro viene sostituito da un segno % seguito dal suo codice ASCII esadecimale a due cifre. Ad esempio, uno spazio diventa %20 e una e commerciale diventa %26.
Gli URL possono contenere solo un insieme limitato di caratteri ASCII. I caratteri al di fuori di questo insieme — inclusi spazi, lettere non ASCII e simboli speciali — devono essere codificati in percent-encoding per essere trasmessi in modo sicuro in un URL.
Come funziona la codifica URL
Il codificatore identifica i caratteri non sicuri negli URL e li sostituisce con i corrispondenti equivalenti in percent-encoding.
- Rilevamento dei caratteri sicuri — lettere, cifre e - _ . ~ vengono lasciati invariati
- Gestione dei caratteri riservati — ! * ' ( ) ; : @ & = + $ , / ? # [ ] vengono codificati nella maggior parte dei contesti
- Supporto Unicode — i caratteri non ASCII vengono prima codificati in UTF-8, poi ogni byte viene codificato in percent-encoding
Prova gratuitamente — nessuna registrazione richiesta
Codifica o decodifica un URL →Quando usare la codifica URL
La codifica URL è necessaria ogni volta che compaiono caratteri speciali nei componenti di un URL.
- Parametri query — codifica i valori passati come parametri nella query string, specialmente i termini di ricerca forniti dall'utente
- Richieste API — codifica i segmenti di percorso e i parametri durante la costruzione programmatica degli URL delle API
- Dati dei moduli — codifica i dati dei form prima di aggiungerli agli URL nelle richieste GET
Domande frequenti
Qual è la differenza tra encodeURI e encodeURIComponent in JavaScript?
encodeURI codifica un URL completo e lascia intatti caratteri come /, :, # perché hanno un significato strutturale negli URL. encodeURIComponent codifica un singolo componente dell'URL (come il valore di un parametro query) e codifica in percent-encoding anche quei caratteri strutturali. Per codificare i valori dei singoli parametri, usa sempre encodeURIComponent.
Perché a volte uno spazio appare come + invece di %20?
Il formato application/x-www-form-urlencoded (usato nelle submission di form HTML) codifica gli spazi come + anziché %20. Si tratta di una convenzione legacy degli standard web delle origini. Nelle query string dei form HTML, + significa spazio; in altri contesti URL si usa %20. Entrambi sono validi, ma il contesto determina quale utilizzare.
Devo codificare l'intero URL o solo alcune parti?
Codifica solo i singoli componenti (segmenti di percorso, valori dei parametri query). Codificare l'intero URL significherebbe codificare anche i caratteri :, / e ? che definiscono la struttura dell'URL, compromettendone il funzionamento. La regola è: codifica i valori, non i caratteri strutturali che formano l'URL.