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 URL: che cos'è e come funziona
La codifica URL, detta anche codifica percentuale, è un modo per rappresentare i caratteri di 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 di escape per stringhe URL codifica il testo allo stesso modo della funzione JavaScript integrata encodeURIComponent.
Perché gli URL devono essere codificati
Un URL può contenere solo un insieme limitato di caratteri: lettere, cifre e pochi segni di punteggiatura. Spazi, lettere accentate, caratteri di alfabeti non latini e simboli come & o = possono rendere un URL non valido o cambiarne il significato se compaiono senza codifica. Uno spazio dentro un link, per esempio, può far leggere l'URL a un browser o a un server come due parti separate. La codifica percentuale sostituisce questi caratteri con un codice che ogni browser e ogni server leggono allo stesso modo.
Caratteri che questo strumento lascia invariati
Questo strumento non modifica mai i caratteri seguenti. Passano direttamente senza cambiamenti:
- Lettere maiuscole e minuscole:
A–Z,a–z - Cifre:
0–9 - I segni di punteggiatura
-._~!*'()
Ogni altro carattere viene codificato in forma percentuale, tra cui:
- Il carattere spazio e la punteggiatura come
:/?#[]@$&+,;= - Le lettere accentate e qualsiasi altro carattere non ASCII o Unicode
- Il carattere
%stesso, che diventa sempre%25, anche se faceva già parte di una sequenza codificata in forma percentuale
Alcune guide generali alla sintassi degli URL collocano ! * ' ( e ) insieme ad altra punteggiatura tra i caratteri che "potrebbero richiedere la codifica" in certi contesti. Questo strumento non li codifica, perché segue le regole di encodeURIComponent, secondo cui sono considerati sicuri.
Come calcolare una stringa codificata in forma percentuale (formula)
Lo strumento controlla uno alla volta ogni carattere dell'input e applica questa regola:
- Se il carattere è uno di quelli invariati elencati sopra, mantenerlo così com'è.
- Altrimenti, convertire il carattere nella sua sequenza di byte UTF-8. La maggior parte delle lettere accentate dell'Europa occidentale usa due byte; i caratteri di scritture come il cinese o l'arabo ne usano spesso tre.
- Scrivere ogni byte come numero esadecimale di due cifre.
- Anteporre un
%a ciascuna coppia esadecimale. - Unire in ordine i risultati per formare la stringa codificata.
Esempio
Input: Jürgen & Björk
Elaborazione 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 l'insieme dei caratteri invariati in azione. La codifica della stringa -_.!~*'() produce -_.!~*'(), esattamente lo stesso testo, perché ogni suo carattere appartiene all'insieme dei caratteri non riservati. La codifica della stringa 100% produce 100%25, perché il segno % stesso non è un carattere sicuro.
Decodifica di una stringa codificata in forma percentuale
La decodifica inverte il processo: ogni sequenza %XX viene letta come byte esadecimale, i byte vengono raggruppati di nuovo nel carattere UTF-8 originale e il carattere sostituisce la sequenza. Per esempio, %C3%BC viene decodificato di nuovo in ü e %20 in uno spazio. Questo strumento si limita a codificare; per invertire il processo serve un decodificatore separato.
Usi comuni
La codifica percentuale si usa ogni volta che un testo digitato da una persona, e non 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 trasportano nomi, indirizzi o altri dati dell'utente
- Link a pagine con titoli in lingue che usano lettere accentate o scritture non latine
- Richieste API che passano 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'
5Cenni storici
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 ha 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 un po' più ampio di quello della RFC 3986: lascia non codificati anche ! * ' ( e ), in linea con una versione precedente della specifica URI.
Domande frequenti
Qual è la differenza tra codifica URL ed escape 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 ) restano invariati in questo strumento?
Questo strumento usa encodeURIComponent, che considera sicuri questi cinque caratteri e li lascia esattamente come digitati. Altre funzioni di codifica, e alcuni server, potrebbero comunque aspettarsi che siano codificati; in caso di problemi, controllare il sistema di destinazione.
Qual è la differenza tra %20 e + per uno spazio?
Entrambi rappresentano uno spazio. %20 è la codifica percentuale generale per lo spazio. Il segno + è un caso particolare usato solo nei dati application/x-www-form-urlencoded, il formato degli invii dei moduli HTML, non da questo strumento.
Questo strumento decodifica il testo già codificato?
No. Si limita a codificare. Se l'input contiene già un segno %, quel % viene trattato come carattere letterale e nell'output diventa %25, invece di essere lasciato com'è.
Come vengono gestiti i caratteri non latini, come il testo cinese o arabo?
Ogni carattere viene prima convertito nella sua sequenza di byte UTF-8, poi ogni byte viene codificato in forma percentuale. La maggior parte dei caratteri cinesi usa tre byte, quindi un carattere cinese produce tre gruppi %XX nell'output.
Conviene codificare un intero URL o solo una parte?
Codificare solo le parti che contengono dati dell'utente, come i valori di query o i segmenti del percorso, non quelle che formano la struttura dell'URL, come https:// e il nome di dominio. Codificare un URL completo con un codificatore di componenti trasformerebbe in codici percentuali anche i caratteri :, / e ?, rendendo l'indirizzo inutilizzabile.
Riferimenti
- Internet Engineering Task Force. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (gennaio 2005). RFC 3986 — codifica percentuale come "%" più due cifre esadecimali; non riservati = ALPHA / DIGIT / "-" / "." / "_" / "~".
- MDN Web Docs (Mozilla). encodeURIComponent(). MDN, encodeURIComponent() — esegue l'escape di tutti i caratteri tranne A–Z a–z 0–9 - _ . ! ~ * ' ( ).
- Internet Engineering Task Force. RFC 1738: Uniform Resource Locators (URL) (dicembre 1994). RFC 1738 — prima specifica degli URL, che definisce la codifica con "%" più due cifre esadecimali.
- Internet Engineering Task Force. RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax (agosto 1998). RFC 2396 — precedente insieme di caratteri "mark" non riservati: - _ . ! ~ * ' ( ).
- WHATWG. URL Standard. WHATWG URL Standard — application/x-www-form-urlencoded usa "+" per lo spazio.