GB 18030 - GB 18030
MIME / IANA | GB18030 |
---|---|
Alias | Codice pagina 54936 |
Le lingue) | Internazionale, ma principalmente pensato per il cinese |
Standard | GB 18030-2005, GB 18030-2000 |
Classificazione | Formato di trasformazione Unicode , ASCII esteso , codifica a larghezza variabile , codifica CJK |
si estende | EUC-CN , GBK |
Trasforma / Codifica | ISO 10646 ( Unicode ) |
Preceduto da | GBK , GB2312 |
GB 18030 è uno standard del governo cinese , descritto come Information Technology — Set di caratteri codificati in cinese e definisce la lingua richiesta e il supporto dei caratteri necessari per il software in Cina . GB18030 è il nome Internet registrato per il set di caratteri ufficiale della Repubblica popolare cinese (RPC) che sostituisce GB2312 . Come formato di trasformazione Unicode (ovvero una codifica di tutti i punti di codice Unicode ), GB18030 supporta sia i caratteri cinesi semplificati che quelli tradizionali . È anche compatibile con le codifiche legacy tra cui GB2312, CP936 e GBK 1.0.
Oltre alla "codifica dei caratteri GB18030", questo standard contiene requisiti su quali script devono essere supportati, supporto per i caratteri, ecc.
Storia
Il set di caratteri GB18030 è formalmente chiamato "Chinese National Standard GB 18030-2005: Information Technology—Set di caratteri codificati in cinese". GB abbrevia Guójiā Biāozhǔn (国家标准), che significa standard nazionale in cinese. Lo standard è stato pubblicato dalla China Standard Press, Pechino, 8 novembre 2005. Solo una parte dello standard è obbligatoria. Dal 1° maggio 2006, il supporto per il sottoinsieme obbligatorio è ufficialmente richiesto per tutti i prodotti software venduti nella RPC.
Sequenza di byte di GB |
Punto di codice Unicode | |
---|---|---|
GB 18030-2000 | GB 18030-2005 | |
A8 aC (ḿ) | U+E7C7 |
U+ 1E3F |
81 35 F4 37 | U+ 1E3F |
U+E7C7
|
Una versione precedente dello standard, nota come "Chinese National Standard GB 18030-2000: Information Technology—Chinese ideograms coded character set for information interchange—Extension for the basic set", è stata pubblicata il 17 marzo 2000. Lo schema di codifica rimane lo stesso lo stesso nella nuova versione, e l'unica differenza nella mappatura da GB a Unicode è che GB 18030-2000 ha mappato il carattere A8 BC
(ḿ) su un punto di codice per uso privato U+E7C7 e il carattere 81 35 F4 37
(senza specificare alcun glifo) su U+ 1E3F (ḿ), mentre GB 18030-2005 scambia queste due assegnazioni di mappatura. Più punti di codice sono ora associati ai caratteri a causa dell'aggiornamento di Unicode , in particolare la comparsa di CJK Unified Ideographs Extension B. Alcuni caratteri utilizzati dalle minoranze etniche in Cina , come i caratteri mongoli e tibetani ( GB 16959 -1997 e GB/T 20542 -2006), sono stati aggiunti anche, che rappresenta la ridenominazione dello standard.
Rispetto ai suoi predecessori, la mappatura di GB 18030 su Unicode è stata modificata per gli 81 caratteri a cui è stato provvisoriamente assegnato un punto di codice Unicode Private Use Area (U+E000–F8FF) in GBK 1.0 e che sono stati successivamente codificati in Unicode. Ciò è specificato nell'Appendice E di GB 18030. Ci sono 24 caratteri in GB 18030-2005 che sono ancora mappati su Unicode PUA. Secondo Ken Lunde, la bozza del 2018 di una nuova revisione del GB 18030 eliminerà definitivamente queste mappature.
Sequenza di byte di GB |
Punto di codice Unicode ( blu = uso privato) | ||
---|---|---|---|
GBK 1.0 | GB 18030 -2005 |
Unicode 4.1 | |
A6 RE9 | U+E78D |
U+ FE10 | |
A6 DA | U+E78E |
U+ FE12 | |
A6 DB | U+E78F |
U+ FE11 | |
A6 CC | U+E790 |
U+ FE13 | |
A6 REDD | U+E791 |
U+ FE14 | |
A6 DE | U+E792 |
U+ FE15 | |
A6 DF | U+E793 |
U+ FE16 | |
LA6 EC | U+E794 |
U+ FE17 | |
A6 ED | U+E795 |
U+ FE18 | |
LA6 FA3 | U+E796 |
U+ FE19 | |
A8 BC | U+E7C7 |
U+ 1E3F | |
LA8 BF | U+E7C8 |
U+ 01F9 | |
A9 89 | U+E7E7 |
U+ 303E | |
LA9 8LA | U+E7E8 |
U+ 2FF0 | |
A9 8B | U+E7E9 |
U+ 2FF1 | |
LA9 8DO | U+E7EA |
U+ 2FF2 | |
LA9 8RE | U+E7EB |
U+ 2FF3 | |
A9 8MI | U+E7EC |
U+ 2FF4 | |
LA9 8FA | U+E7ED |
U + 2FF5 ⿵ | |
A9 90 | U+E7EE |
U+ 2FF6 | |
A9 91 | U+E7EF |
U+ 2FF7 | |
A9 92 | U+E7F0 |
U+ 2FF8 | |
A9 93 | U+E7F1 |
U+ 2FF9 | |
A9 94 | U+E7F2 |
U+ 2FFA | |
A9 95 | U+E7F3 |
U+ 2FFB | |
FE 50 | U+E815 |
U+ 2E81 | |
FE 51 | U+E816 |
U + 20087 𠂇 | |
FE 52 | U+E817 |
U + 20089 𠂉 | |
FE 53 | U+E818 |
U+ 200CC | |
FE 54 | U+E819 |
U+ 2E84 | |
FE 55 | U+E81A |
U+3473 㑳 | |
FE 56 | U+E81B |
U+3447 㑇 | |
FE 57 | U+E81C |
U+ 2E88 | |
FE 58 | U+E81D |
U+ 2E8B | |
FE 59 | U+E81E |
U+9FB4 龴 | |
FE 5A | U+E81F |
U+359E 㖞 | |
FE 5B | U+E820 |
U+361A 㘚 | |
FE 5C | U+E821 |
U+360E 㘎 | |
FE 5D | U+E822 |
U+ 2E8C | |
FE 5E | U+E823 |
U+ 2E97 | |
FE 5FA | U+E824 |
U+396E 㥮 | |
FE 60 | U+E825 |
U+3918 㤘 | |
FE 61 | U+E826 |
U+9FB5 龵 | |
FE 62 | U+E827 |
U+39CF 㧏 | |
FE 63 | U+E828 |
U+39DF 㧟 | |
FE 64 | U+E829 |
U+3A73 㩳 | |
FE 65 | U+E82A |
U+39D0 㧐 | |
FE 66 | U+E82B |
U+9FB6 龶 | |
FE 67 | U+E82C |
U+9FB7 龷 | |
FE 68 | U+E82D |
U+3B4E 㭎 | |
FE 69 | U+E82E |
U+3C6E 㱮 | |
FE 6A | U+E82F |
U+3CE0 㳠 | |
FE 6B | U+E830 |
U+ 2EA7 | |
FE 6C | U+E831 |
U+ 215D7 | |
FE 6D | U+E832 |
U+9FB8 龸 | |
FE 6MI | U+E833 |
U+ 2EAA | |
FE 6FA | U+E834 |
U+4056 䁖 | |
FE 70 | U+E835 |
U+415F 䅟 | |
FE 71 | U+E836 |
U+ 2EAE | |
FE 72 | U+E837 |
U+4337 䌷 | |
FE 73 | U+E838 |
U+ 2EB3 | |
FE 74 | U+E839 |
U+ 2EB6 | |
FE 75 | U+E83A |
U+ 2EB7 | |
FE 76 | U+E83B |
U+ 2298F | |
FE 77 | U+E83C |
U+43B1 䎱 | |
FE 78 | U+E83D |
U+43AC 䎬 | |
FE 79 | U+E83E |
U+ 2EBB | |
FE 7A | U+E83F |
U+43DD 䏝 | |
FE 7B | U+E840 |
U+44D6 䓖 | |
FE 7DO | U+E841 |
U+4661 䙡 | |
FE 7D | U+E842 |
U+464C 䙌 | |
FE 7MI | U+E843 |
U+9FB9 龹 | |
FE 80 | U+E844 |
U+4723 䜣 | |
FE 81 | U+E845 |
U+4729 䜩 | |
FE 82 | U+E846 |
U+477C 䝼 | |
FE 83 | U+E847 |
U+478D 䞍 | |
FE 84 | U+E848 |
U+ 2ECA | |
FE 85 | U+E849 |
U+4947 䥇 | |
FE 86 | U+E84A |
U+497A 䥺 | |
FE 87 | U+E84B |
U+497D 䥽 | |
FE 88 | U+E84C |
U+4982 䦂 | |
FE 89 | U+E84D |
U+4983 䦃 | |
FE 8A | U+E84E |
U+4985 䦅 | |
FE 8B | U+E84F |
U+4986 䦆 | |
MI 8C | U+E850 |
U+499F 䦟 | |
FE 8D | U+E851 |
U+499B 䦛 | |
FE 8 MI | U+E852 |
U+49B7 䦷 | |
FE 8FA | U+E853 |
U+49B6 䦶 | |
FE 90 | U+E854 |
U+9FBA 龺 | |
FE 91 | U+E855 |
U+ 241FE | |
FE 92 | U+E856 |
U+4CA3 䲣 | |
FE 93 | U+E857 |
U+4C9FA 䲟 | |
FE 94 | U+E858 |
U+4CA0 䲠 | |
FE 95 | U+E859 |
U+4CA1 䲡 | |
FE 96 | U+E85A |
U+4C77 䱷 | |
FE 97 | U+E85B |
U+4CA2 䲢 | |
FE 98 | U+E85C |
U+4D13 䴓 | |
FE 99 | U+E85D |
U+4D14 䴔 | |
FE 9A | U+E85E |
U+4D15 䴕 | |
FE 9B | U+E85F |
U+4D16 䴖 | |
FE 9DO | U+E860 |
U+4D17 䴗 | |
FE 9D | U+E861 |
U+4D18 䴘 | |
FE 9E | U+E862 |
U+4D19 䴙 | |
FE 9FA | U+E863 |
U+4DAE 䶮 | |
FE A0 | U+E864 |
U+9FBB 龻 |
Come standard nazionale
La parte obbligatoria di GB 18030-2005 consiste nella codifica a 1 byte e 2 byte, insieme alla codifica a 4 byte per CJK Unified Ideographs Extension A. I corrispondenti punti di codice Unicode di questo sottoinsieme, comprese le assegnazioni private provvisorie, si trovano interamente nel BMP . Queste parti corrispondono alla GB 18030-2000 completamente obbligatoria.
La maggior parte delle principali aziende di computer aveva già standardizzato alcune versioni di Unicode come formato principale da utilizzare nei formati binari e nelle chiamate del sistema operativo. Tuttavia, per lo più avevano solo punti di codice supportati nel BMP originariamente definito in Unicode 1.0, che supportava solo 65.536 punti di codice ed era spesso codificato a 16 bit come UCS-2 .
Con una mossa di importanza storica per il software che supporta Unicode, la Repubblica popolare cinese ha deciso di imporre il supporto di determinati punti di codice al di fuori del BMP. Ciò significa che il software non può più farla franca trattando i caratteri come entità a larghezza fissa a 16 bit ( UCS-2 ). Pertanto, devono elaborare i dati in un formato a larghezza variabile (come UTF-8 o UTF-16 ), che sono le scelte più comuni, o passare a un formato a larghezza fissa più grande (come UCS-4 o UTF-32 ). Microsoft ha apportato la modifica da UCS-2 a UTF-16 con Windows 2000.
Mappatura
GB 18030 definisce una codifica uno (ASCII), due (GBK esteso) o quattro byte (UTF). I codici a due byte sono definiti in una tabella di ricerca, mentre i codici a quattro byte sono definiti in sequenza (quindi algoritmicamente) per riempire parti altrimenti non codificate in UCS . GB 18030 eredita gli aspetti negativi di GBK , in particolare la necessità di un codice speciale per trovare in modo sicuro i caratteri ASCII in una sequenza GB18030.
GB 18030 | punti di codice | Unicode | |||
---|---|---|---|---|---|
byte 1 (MSB) | byte 2 | byte 3 | byte 4 | ||
00 – 7F
|
128 |
0000 – 007F
|
|||
80
|
— | non valido | |||
81 – FE
|
40 – FE tranne7F
|
23 940 |
0080 – FFFF tranne D800 –DFFF
|
||
81 – 84
|
30 – 39
|
81 – FE
|
30 – 39
|
39 420 | |
85
|
— (12 600 ) | riservato per future estensioni di carattere | |||
86 – 8F
|
— (126 000 ) | riservato per futura estensione ideografica | |||
non assegnato | — |
D800 – DFFF
|
|||
90 – E3
|
30 – 39
|
81 – FE
|
30 – 39
|
1 048 576 |
10000 – 10FFFF
|
E4 – FC
|
— (315 000 ) | riservato per future estensioni standard | |||
FD – FE
|
— (25 200 ) | definito dall'utente | |||
FF
|
— | non valido | |||
Totale | 1 112 064 |
I punti di codice a uno e due byte sono essenzialmente GBK con il simbolo dell'euro, mappature PUA per punti non assegnati/definiti dall'utente e punteggiatura verticale. Lo schema a quattro byte può essere pensato come composto da due unità, ciascuna di due byte. Ogni unità ha un formato simile a un carattere GBK a due byte ma con un intervallo di valori per il secondo byte di 0x30–0x39 (i codici ASCII per le cifre decimali). Il primo byte ha l'intervallo da 0x81 a 0xFE, come prima. Ciò significa che una routine di ricerca di stringhe sicura per GBK dovrebbe essere ragionevolmente sicura anche per GB18030 (più o meno allo stesso modo in cui una routine di ricerca orientata ai byte di base è ragionevolmente sicura per EUC ).
Questo dà un totale di 1.587.600 (126 × 10 × 126 × 10) possibili sequenze di 4 byte, che è facilmente sufficiente per coprire i 1.112.064 di Unicode (17 × 65536 - 2048 surrogati) assegnati, riservati e punti di codice non di caratteri.
Sfortunatamente, a complicare ulteriormente le cose non ci sono semplici regole da tradurre tra una sequenza di 4 byte e il suo corrispondente punto di codice . Invece, i codici vengono allocati in sequenza (con il primo byte contenente la parte più significativa e l'ultimo la parte meno significativa) solo a punti di codice Unicode che non sono mappati in altro modo. Per esempio:
U+00DE (Þ) → 81 30 89 37 U+00DF (ß) → 81 30 89 38 U+00E0 (à) → A8 A4 U+00E1 (á) → A8 A2 U+00E2 (â) → 81 30 89 39 U+00E3 (ã) → 81 30 8A 30
Una tabella offset viene utilizzata nella versione WHATWG e W3C di GB 18030 per tradurre in modo efficiente i punti di codice. ICU e glibc utilizzano definizioni di intervallo simili per evitare di sprecare spazio su grandi blocchi sequenziali.
Supporto
Codifica
Windows 2000 può supportare la codifica GB18030 se è installato il pacchetto di supporto GB18030. Windows XP può supportarlo in modo nativo. Il database open source PostgreSQL supporta GB18030 attraverso il suo pieno supporto per UTF-8, cioè convertendolo in e da UTF-8. Allo stesso modo, Microsoft SQL Server supporta GB18030 mediante conversione da e verso UTF-16.
Più specificamente, supportare la codifica GB18030 su Windows significa che Code Page 54936 è supportato da MultiByteToWideChar
e WideCharToMultiByte
. A causa della retrocompatibilità della mappatura, molti file in GB18030 possono essere effettivamente aperti correttamente come Code Page 936 legacy, ovvero GBK, anche se la Code Page 54936 non è supportata. Tuttavia, ciò è vero solo se il file in questione contiene solo caratteri GBK. Il caricamento non riuscirà o causerà risultati danneggiati se il file contiene caratteri che non esistono in GBK (vedere § Dettagli tecnici per esempi).
gconv di GNU glibc , la libreria di codec di caratteri utilizzata sulla maggior parte delle distribuzioni Linux, supporta GB 18030-2000 dalla 2.2 e GB 18030-2005 dalla 2.14; glibc include in particolare mappature non PUA per GB 18030-2005 al fine di ottenere la conversione di andata e ritorno. GNU libiconv , un'implementazione iconv alternativa frequentemente utilizzata su ambienti non glibc UNIX come Cygwin , supporta GB 18030 dalla versione 1.4.
Glifi
Il pacchetto di supporto GB18030 per Windows contiene SimSun18030.ttc, un file di raccolta di caratteri TrueType che combina due caratteri cinesi, SimSun-18030 e NSimSun-18030. Il font SimSun 18030 include tutti i caratteri in Unicode 2.1 più i nuovi caratteri trovati nel blocco Unicode CJK Unified Ideographs Extension A sebbene, nonostante il nome, non contenga glifi per tutti i caratteri codificati da GB 18030, come tutti (circa un milione) I punti di codice Unicode fino a U+10FFFF possono essere codificati come GB 18030. La certificazione di conformità GB 18030 richiede solo la corretta gestione e riconoscimento dei glifi nella parte cinese obbligatoria (a due byte e CJK Ext. A). Tuttavia, il requisito dei caratteri PUA nello standard ha ostacolato questa implementazione.
Altre famiglie di font CJK come HAN NOM e Hanazono Mincho forniscono una copertura più ampia per i blocchi di estensione CJK Unicode rispetto a SimSun-18030 o persino Simsun (Founder Extended), ma non supportano nemmeno tutti i punti di codice definiti in Unicode 5.0.0.
Guarda anche
Appunti
Riferimenti
link esterno
- Registrazione del set di caratteri IANA per GB18030
- "Riassunto in lingua inglese di – -2000" (PDF) . 16 febbraio 2001. Archiviato dall'originale (PDF) il 02/02/2017.
- Introduzione a GB18030 inclusa l'evoluzione da GB2312 e GBK (Sun/Internet Archive)
- Dati in terapia intensiva
- Grafici Unicode
- Unicode CJK Unified Ideographs Extension A (PDF, 1,5 MB)
- Unicode CJK Unified Ideographs Extension B (PDF, 13 MB)
- Pacchetto di supporto GB18030 per Windows 2000/XP, inclusi caratteri cinesi, tibetani, Yi, mongoli e tailandesi di Microsoft (Internet Archive)
- Font, editor e documentazione freeware di SIL