Codificatore URL: Escape dei caratteri speciali negli URL online gratuito
Strumento gratuito per l'escape di stringhe URL per codificare istantaneamente caratteri speciali. Converti spazi, Unicode e simboli in formato con codifica percentuale. Perfetto per API, moduli web e URL internazionali. Prova ora!
Escape per Stringhe URL
Documentazione
Codifica degli URL: che cos'è e come funziona
La codifica degli URL, chiamata anche codifica percentuale, è un modo per rappresentare i caratteri in un indirizzo web usando solo un piccolo insieme di caratteri ASCII sicuri. Funziona sostituendo un carattere non sicuro con un segno % seguito da due cifre esadecimali. Questo strumento per l'escape delle stringhe URL codifica il testo nello stesso modo della funzione integrata encodeURIComponent di JavaScript.
Perché gli URL devono essere codificati
Un URL può contenere solo un insieme limitato di caratteri: lettere, cifre e alcuni segni di punteggiatura. Gli spazi, le lettere accentate, i caratteri degli alfabeti non latini e simboli come & o = possono interrompere un URL o modificarne il significato se vi compaiono senza codifica. Per esempio, uno spazio all'interno di un collegamento può fare sì che un browser o un server legga l'URL come due parti separate. La codifica percentuale sostituisce questi caratteri con un codice che tutti i browser e i server possono leggere nello stesso modo.
Caratteri che questo strumento lascia invariati
Questo strumento non modifica mai i caratteri seguenti. Li lascia passare direttamente:
- Lettere maiuscole e minuscole:
A–Z,a–z - Cifre:
0–9 - I segni di punteggiatura
-._~!*'()
Ogni altro carattere viene codificato in forma percentuale, inclusi:
- Il carattere spazio e segni di punteggiatura come
:/?#[]@$&+,;= - Lettere accentate e qualsiasi altro carattere non ASCII o Unicode
- Un carattere letterale
%, che diventa sempre%25, anche se faceva già parte di una sequenza codificata in forma percentuale
Alcune guide generali sulla sintassi degli URL raggruppano ! * ' ( e ) insieme agli altri segni di punteggiatura come caratteri che «potrebbero dover essere codificati» in determinati contesti. Questo strumento specifico non li codifica, perché segue l'insieme di regole di encodeURIComponent, secondo cui questi caratteri sono considerati sicuri.
Come calcolare una stringa codificata in forma percentuale (formula)
Lo strumento controlla ogni carattere dell'input uno alla volta e applica questa regola:
- Se il carattere è uno dei caratteri invariati elencati sopra, lo lascia così com'è.
- Altrimenti, converte il carattere nella relativa sequenza di byte UTF-8. Le lettere latine accentate, greche, cirilliche e arabe usano due byte. I caratteri cinesi, giapponesi e coreani ne usano tre. Le emoji ne usano quattro.
- Scrive ogni byte come numero esadecimale di due cifre.
- Inserisce un
%davanti a ogni coppia esadecimale. - Unisce i risultati nell'ordine originale per formare la stringa codificata.
Esempio
Input: Jürgen & Björk
Analizzando il testo carattere per carattere:
| Carattere | Risultato |
|---|---|
J | J (invariato) |
ü | %C3%BC (byte UTF-8 0xC3, 0xBC) |
rgen | rgen (invariato) |
(spazio) | %20 |
& | %26 |
(spazio) | %20 |
Bj | Bj (invariato) |
ö | %C3%B6 (byte UTF-8 0xC3, 0xB6) |
rk | rk (invariato) |
Output: J%C3%BCrgen%20%26%20Bj%C3%B6rk
Un secondo esempio mostra il funzionamento dell'insieme dei caratteri invariati. La codifica della stringa -_.!~*'() produce -_.!~*'(), esattamente lo stesso testo, perché ogni carattere appartiene all'insieme dei caratteri non riservati. La codifica della stringa 100% produce 100%25, perché il segno % non è un carattere sicuro.
Decodifica di una stringa codificata in forma percentuale
La decodifica inverte il processo: ogni sequenza %XX viene letta come un byte esadecimale, i byte vengono nuovamente raggruppati nel carattere UTF-8 originale e il carattere sostituisce la sequenza. Per esempio, %C3%BC viene decodificato nuovamente in ü e %20 viene decodificato in uno spazio. Questo strumento esegue solo la codifica; per invertire il processo serve un decodificatore separato.
Usi comuni
La codifica percentuale viene usata ogni volta che un testo digitato da una persona, anziché scritto da un programmatore, deve diventare parte di un URL:
- Caselle di ricerca che inseriscono il termine cercato nella barra degli indirizzi, come
?q=shoes%20%26%20bags - Parametri di query che contengono nomi, indirizzi o altri dati dell'utente
- Collegamenti a pagine con titoli in lingue che usano lettere accentate o alfabeti non latini
- Richieste API che trasmettono token o identificatori come parte dell'URL
Esempi di codice
1// JavaScript
2encodeURIComponent("Jürgen & Björk");
3// "J%C3%BCrgen%20%26%20Bj%C3%B6rk"
41# Python
2import urllib.parse
3urllib.parse.quote("Jürgen & Björk", safe="!*'()")
4# 'J%C3%BCrgen%20%26%20Bj%C3%B6rk'
5La funzione Python quote lascia sempre invariati lettere, cifre e - . _ ~. I cinque caratteri aggiuntivi ! * ' ( ) devono essere elencati in safe per ottenere lo stesso comportamento di questo strumento. Senza di essi, quote restituisce rispettivamente %21 %2A %27 %28 %29.
Storia
L'idea di codificare i caratteri non sicuri in un URL risale alla RFC 1738 del 1994, uno dei primi documenti a definire il formato degli URL. La RFC 3986, pubblicata nel 2005, ha aggiornato le regole e definito formalmente l'insieme dei caratteri «non riservati» che non richiedono mai la codifica. encodeURIComponent, la funzione JavaScript su cui si basa questo strumento, segue un insieme di caratteri non riservati leggermente più ampio rispetto alla RFC 3986: lascia non codificati anche ! * ' ( e ), in linea con una versione precedente delle specifiche URI.
Domande frequenti
Qual è la differenza tra codifica URL ed escaping URL?
Sono la stessa cosa. Entrambi i termini descrivono la codifica percentuale, in cui un carattere viene sostituito da % seguito da due cifre esadecimali.
Perché !, *, ', ( e ) rimangono invariati in questo strumento?
Questo strumento usa encodeURIComponent, che considera sicuri questi cinque caratteri e li lascia esattamente come sono stati digitati. Altre funzioni di codifica e alcuni server potrebbero comunque aspettarsi che siano codificati, quindi occorre verificare il sistema di destinazione se questo comportamento causa un problema.
Qual è la differenza tra %20 e + per rappresentare uno spazio?
Entrambi rappresentano uno spazio. %20 è la codifica percentuale generale di uno spazio. Il segno + è un caso speciale usato solo nei dati application/x-www-form-urlencoded, il formato utilizzato dall'invio dei moduli HTML, non da questo strumento.
Questo strumento decodifica il testo già codificato?
No. Esegue solo la codifica. Se l'input contiene già un segno %, tale segno viene trattato come un carattere letterale e diventa %25 nell'output, invece di essere lasciato invariato.
Come vengono gestiti i caratteri non latini, come il testo cinese o arabo?
Ogni carattere viene prima convertito nella relativa sequenza di byte UTF-8, quindi ogni byte viene codificato in forma percentuale. Un carattere cinese usa tre byte, quindi produce tre gruppi %XX. Una lettera araba usa due byte, quindi ne produce due.
Quando lo strumento rifiuta di codificare il testo?
Solo quando il testo contiene metà di una coppia surrogata. Una coppia surrogata è il codice in due parti che memorizza un carattere superiore a U+FFFF, come un'emoji. Una metà isolata non ha una forma UTF-8 valida, quindi lo strumento mostra un errore invece di un risultato. La digitazione normale non può produrne una; di solito arriva da una copia troncata o da un collegamento danneggiato.
È necessario codificare un URL intero o solo una parte?
Vanno codificate solo le parti che contengono dati dell'utente, come i valori delle query o i segmenti del percorso, non le parti che costituiscono la struttura dell'URL, come https:// e il nome di dominio. Codificare un URL completo con un codificatore di componenti trasformerebbe inoltre i caratteri :, / e ? in codici percentuali, rendendo l'indirizzo inutilizzabile.