Tabella completa dei caratteri URL codificati (ASCII + Unicode)
Tabella di riferimento completa dei caratteri URL codificati. Copre tutti i caratteri ASCII stampabili (32-126), i caratteri Unicode più comuni e i loro equivalenti percent-encoded come definito da RFC 3986.
Caratteri ASCII di controllo e speciali
I caratteri ASCII nell'intervallo 0-31 e il carattere 127 sono caratteri di controllo. Non sono stampabili e devono sempre essere codificati con la percent-encoding negli URL. I caratteri di controllo più frequenti nei contesti URL sono lo spazio (ASCII 32), la tabulazione orizzontale (ASCII 9) e i caratteri di nuova riga (ASCII 10 e 13).
Secondo RFC 3986, qualsiasi ottetto che non sia un carattere unreserved, un carattere reserved usato per il suo scopo riservato o una tripletta percent-encoded deve essere codificato con la percent-encoding. In pratica, questo significa che la maggior parte dei caratteri non alfanumerici dovrebbe essere codificata nei componenti di un URI.
| Carattere | Codice ASCII | Codifica URL | Descrizione |
|---|---|---|---|
| (tab) | 9 | %09 |
Tabulazione orizzontale |
| (LF) | 10 | %0A |
Avanzamento di riga |
| (CR) | 13 | %0D |
Ritorno a capo |
| (spazio) | 32 | %20 |
Spazio |
Caratteri ASCII stampabili
Di seguito trovi un riferimento completo di tutti i caratteri ASCII stampabili (codici 32-126) e le loro forme URL codificate. I caratteri contrassegnati come "unreserved" in RFC 3986 non richiedono la codifica. I caratteri reserved devono essere codificati quando vengono usati al di fuori del loro scopo riservato.
| Carattere | ASCII | Hex | Codifica URL | Tipo |
|---|---|---|---|---|
| (spazio) | 32 | 20 | %20 |
Speciale |
| ! | 33 | 21 | %21 |
Reserved |
| " | 34 | 22 | %22 |
Non sicuro |
| # | 35 | 23 | %23 |
Reserved |
| $ | 36 | 24 | %24 |
Reserved |
| % | 37 | 25 | %25 |
Speciale |
| & | 38 | 26 | %26 |
Reserved |
| ' | 39 | 27 | %27 |
Reserved |
| ( | 40 | 28 | %28 |
Reserved |
| ) | 41 | 29 | %29 |
Reserved |
| * | 42 | 2A | %2A |
Reserved |
| + | 43 | 2B | %2B |
Reserved |
| , | 44 | 2C | %2C |
Reserved |
| - | 45 | 2D | %2D |
Unreserved |
| . | 46 | 2E | %2E |
Unreserved |
| / | 47 | 2F | %2F |
Reserved |
| 0-9 | 48-57 | 30-39 | Non richiesta | Unreserved |
| : | 58 | 3A | %3A |
Reserved |
| ; | 59 | 3B | %3B |
Reserved |
| < | 60 | 3C | %3C |
Non sicuro |
| = | 61 | 3D | %3D |
Reserved |
| > | 62 | 3E | %3E |
Non sicuro |
| ? | 63 | 3F | %3F |
Reserved |
| @ | 64 | 40 | %40 |
Reserved |
| A-Z | 65-90 | 41-5A | Non richiesta | Unreserved |
| [ | 91 | 5B | %5B |
Reserved |
| \ | 92 | 5C | %5C |
Non sicuro |
| ] | 93 | 5D | %5D |
Reserved |
| ^ | 94 | 5E | %5E |
Non sicuro |
| _ | 95 | 5F | %5F |
Unreserved |
| ` | 96 | 60 | %60 |
Non sicuro |
| a-z | 97-122 | 61-7A | Non richiesta | Unreserved |
| { | 123 | 7B | %7B |
Non sicuro |
| | | 124 | 7C | %7C |
Non sicuro |
| } | 125 | 7D | %7D |
Non sicuro |
| ~ | 126 | 7E | %7E |
Unreserved |
Codifiche Unicode più comuni
I caratteri Unicode vengono prima convertiti nella loro sequenza di byte UTF-8, dopodiché ogni byte viene codificato singolarmente con la percent-encoding. I caratteri multi-byte producono più triplette percent-encoded.
| Carattere | Descrizione | Byte UTF-8 | Codifica URL |
|---|---|---|---|
| a con dieresi | Latin Small Letter A with Diaeresis | C3 A4 | %C3%A4 |
| n con tilde | Latin Small Letter N with Tilde | C3 B1 | %C3%B1 |
| e con accento acuto | Latin Small Letter E with Acute | C3 A9 | %C3%A9 |
| u con dieresi | Latin Small Letter U with Diaeresis | C3 BC | %C3%BC |
| Simbolo dell'euro | Euro Sign | E2 82 AC | %E2%82%AC |
| Simbolo della sterlina | Pound Sign | C2 A3 | %C2%A3 |
| Simbolo dello yen | Yen Sign | C2 A5 | %C2%A5 |
| CJK zhong | CJK Unified Ideograph (middle) | E4 B8 AD | %E4%B8%AD |
| Ya cirillica | Cyrillic Capital Letter Ya | D0 AF | %D0%AF |
| Ba araba | Arabic Letter Ba | D8 A8 | %D8%A8 |
Come vengono codificati i caratteri multi-byte
UTF-8 utilizza uno schema di codifica a lunghezza variabile. I caratteri nell'intervallo ASCII (0-127) usano un byte. I caratteri al di fuori di questo intervallo usano da due a quattro byte. Durante la percent-encoding, ogni byte della rappresentazione UTF-8 diventa una tripletta %XX separata.
Caratteri a due byte (da U+0080 a U+07FF): comprendono la maggior parte dei caratteri latini estesi, greci, cirillici e arabi. Ad esempio, la lettera tedesca esse acuta (U+00DF) viene codificata nei byte UTF-8 C3 9F, che diventano %C3%9F.
Caratteri a tre byte (da U+0800 a U+FFFF): comprendono i caratteri CJK, la maggior parte dei simboli e il Basic Multilingual Plane. Ad esempio, il carattere hiragana giapponese (U+3042) viene codificato nei byte UTF-8 E3 81 82, che diventano %E3%81%82.
Caratteri a quattro byte (da U+10000 a U+10FFFF): comprendono le emoji e i caratteri supplementari. Ad esempio, l'emoji del volto sorridente (U+1F600) viene codificata nei byte UTF-8 F0 9F 98 80, che diventano %F0%9F%98%80.
// Dimostrazione in JavaScript della codifica multi-byte
console.log(encodeURIComponent('u con dieresi'));
// Due byte: "%C3%BC"
console.log(encodeURIComponent('carattere CJK'));
// Tre byte: "%E4%B8%AD"
console.log(encodeURIComponent('emoji'));
// Quattro byte: "%F0%9F%98%80"
// Puoi verificare eseguendo la decodifica
console.log(decodeURIComponent('%C3%BC')); // u con dieresi
console.log(decodeURIComponent('%E4%B8%AD')); // carattere CJK