GB 18030 - GB 18030
![]() | tento článek potřebuje další citace pro ověření.Září 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() Rozložení kódování GB 18030. „Poloviční kódy“ označuje kódy používané v párech jako čtyřbajtové kódy. | |
MIME / IANA | GB18030 |
---|---|
Alias (y) | Kódová stránka 54936 |
Jazyk (y) | Mezinárodní, ale primárně určené pro čínština |
Standard | GB 18030-2005, GB 18030-2000 |
Klasifikace | Transformační formát Unicode, rozšířené ASCII,[A] kódování s proměnnou šířkou, Kódování CJK |
Rozšiřuje | EUC-CN, GBK |
Transformuje / kóduje | ISO 10646 (Unicode ) |
Předcházet | GBK, GB2312 |
| |
GB 18030 je Čínský vládní standard, popsáno jako Informační technologie - čínská kódovaná znaková sada a definuje požadovanou jazykovou a znakovou podporu nezbytnou pro software v Čína. GB18030 je registrovaný internetový název úředníka sada znaků z Čínská lidová republika (PRC) nahrazuje GB2312.[1] Jako Transformační formát Unicode[A] (tj. kódování všech Unicode GB18030 podporuje oba zjednodušený a tradiční Čínské postavy. Je také kompatibilní se staršími kódováními, včetně GB2312, CP936,[b] a GBK 1.0.
Kromě „kódování znaků GB18030“ obsahuje tato norma požadavky na to, které skripty musí být podporovány, podporu písem atd.[2]
Dějiny
Znaková sada GB18030 se formálně nazývá „Čínská národní norma GB 18030-2005: Informační technologie - čínská kódovaná znaková sada“. GB zkracuje Guójiā Biāozhǔn (国家 标准), což znamená národní norma v čínštině. Standard byl publikován China Standard Press, Peking, 8. listopadu 2005. Pouze část standardu je povinná.[2] Od 1. května 2006 je pro všechny softwarové produkty prodávané v ČLR oficiálně vyžadována podpora pro povinnou podmnožinu.
GB byte sekvence | Bod kódu Unicode | |
---|---|---|
GB 18030-2000 | GB 18030-2005 | |
A8 BC (ḿ) | U + E7C7 | U + 1E3F ḿ |
81 35 F4 37 | U + 1E3F ḿ | U + E7C7 |
Starší verze standardu, známá jako „Čínská národní norma GB 18030-2000: Informační technologie - čínské ideogramy kódované znakové sady pro výměnu informací - Rozšíření základní sady“, byla zveřejněna 17. března 2000. Schéma kódování zůstává stejné v nové verzi a jediný rozdíl v mapování GB-to-Unicode je ten, že GB 18030-2000 mapoval znak A8 př
(ḿ) na soukromý kódový bod U + E7C7 a znak 81 35 F4 37
(bez zadání jakéhokoli glyfu) na U + 1E3F (ḿ), zatímco GB 18030-2005 zaměňuje tyto dvě přiřazení mapování.[3]:534 Více kódových bodů je nyní přidruženo k postavám kvůli aktualizaci Unicode, zejména vzhled CJK Unified Ideographs Přípona B. Některé znaky používané etnické menšiny v Číně, jako Mongolské znaky a Tibetské znaky (GB 16959 -1997 a GB / T 20542 -2006), které byly také přidány, což zohledňuje přejmenování standardu.
Ve srovnání se svými předky bylo mapování GB 18030 na Unicode upraveno pro 81 znaků, kterým byl dočasně přidělen Unicode Oblast pro soukromé použití kódový bod (U + E000 – F8FF) v GBK 1.0 a které byly později zakódovány v Unicode.[4] To je uvedeno v dodatku E k GB 18030.[3]:534[5]:499 V GB 18030-2005 je 24 znaků, které jsou stále mapovány na Unicode PUA.[6] Podle Kena Lundeho návrh nové revize GB 18030 z roku 2018 tato mapování konečně eliminuje.[7]
GB byte sekvence | Bod kódu Unicode (modrý = soukromé použití) | ||
---|---|---|---|
GBK 1.0[8][3]:534 | GB 18030 -2005[6] | Unicode 4.1 | |
A6 D9[9]:108 | U + E78D | U + FE10 ︐ | |
A6 DA | U + E78E | U + FE12 ︒ | |
A6 DB | U + E78F | U + FE11 ︑ | |
A6 DC | U + E790 | U + FE13 ︓ | |
A6 DD | U + E791 | U + FE14 ︔ | |
A6 DE | U + E792 | U + FE15 ︕ | |
A6 DF | U + E793 | U + FE16 ︖ | |
A6 ES | U + E794 | U + FE17 ︗ | |
A6 ED | U + E795 | U + FE18 ︘ | |
A6 F3 | U + E796 | U + FE19 ︙ | |
A8 př | U + E7C7 | U + 1E3F ḿ | |
A8 BF | U + E7C8 | U + 01F9 ǹ | |
A9 89 | U + E7E7 | U + 303E 〾 | |
A9 8A | U + E7E8 | U + 2FF0 ⿰ | |
A9 8B | U + E7E9 | U + 2FF1 ⿱ | |
A9 8C | U + E7EA | U + 2FF2 ⿲ | |
A9 8D | U + E7EB | U + 2FF3 ⿳ | |
A9 8E | U + E7EC | U + 2FF4 ⿴ | |
A9 8F | 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[9]:173 | 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 5F | 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 6E | U + E833 | U + 2EAA ⺪ | |
FE 6F | 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 7C | U + E841 | U + 4661 䙡 | |
FE 7D | U + E842 | U + 464C 䙌 | |
FE 7E | 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 䦆 | |
FE 8C | U + E850 | U + 499F 䦟 | |
FE 8D | U + E851 | U + 499 B 䦛 | |
FE 8E | U + E852 | U + 49B7 䦷 | |
FE 8F | 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 + 4C9F 䲟 | |
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 9C | U + E860 | U + 4D17 䴗 | |
FE 9D | U + E861 | U + 4D18 䴘 | |
FE 9E | U + E862 | U + 4D19 䴙 | |
FE 9F | U + E863 | U + 4DAE 䶮 | |
FE A0 | U + E864 | U + 9FBB 龻 |
Jako národní standard
Povinná část GB 18030-2005 se skládá z 1 bajtového a 2 bajtového kódování společně se 4 bajtovým kódováním pro CJK Unified Ideographs Přípona A. Odpovídající body kódu Unicode této podmnožiny, včetně provizorních soukromých přiřazení, leží zcela v BMP.[3]:3 Tyto části odpovídají plně povinnému GB 18030-2000.[2]:2
Většina hlavních počítačových společností již standardizovala některou verzi Unicode jako primární formát pro použití v jejich binárních formátech a OS volání. Většinou však pouze podporovali kódové body v BMP původně definovaný v Unicode 1.0, který podporoval pouze 65 536 kódových bodů a byl často kódován jako 16 bitů UCS-2.
V pohybu historického významu pro software podporující Unicode, PRC se rozhodl pověřit podporu určitých kódových bodů[který? ] mimo BMP.[Citace je zapotřebí ] To znamená, že software se již nemůže dostat pryč se zpracováním znaků jako 16bitových entit s pevnou šířkou (UCS-2 ). Proto musí buď zpracovat data ve formátu s proměnnou šířkou (například UTF-8 nebo UTF-16 ), což jsou nejběžnější možnosti, nebo přejít na větší formát s pevnou šířkou (například UCS-4 nebo UTF-32 ). Microsoft provedl změnu z UCS-2 na UTF-16 s Windows 2000.
Mapování
GB 18030 definuje kódování jedno (ASCII), dva (rozšířené GBK) nebo čtyřbajtové (UTF). Dvoubajtové kódy jsou definovány ve vyhledávací tabulce, zatímco čtyřbajtové kódy jsou definovány postupně (tedy algoritmicky) tak, aby vyplňovaly jinak nekódované části UCS. GB 18030 dědí špatné stránky GBK, zejména potřebují speciální kód pro bezpečné vyhledání znaků ASCII v sekvenci GB18030.
GB 18030 | kódové body[C] | Unicode | |||
---|---|---|---|---|---|
bajt 1 (MSB) | bajt 2 | bajt 3 | bajt 4 | ||
00 – 7F | 128 | 0000 – 007F | |||
80 | — | neplatný[d] | |||
81 – FE | 40 – FE až na 7F [E] | 23940 | 0080 – FFFF až na D800 – DFFF [F] | ||
81 – 84 | 30 – 39 | 81 – FE | 30 – 39 | 39420 | |
85 | — (12600) | vyhrazeno pro budoucí rozšíření znaků | |||
86 – 8F | — (126000) | vyhrazeno pro budoucí ideografické rozšíření | |||
Nepřiřazeno | — | D800 – DFFF [G] | |||
90 – E3 | 30 – 39 | 81 – FE | 30 – 39 | 1048576 | 10000 – 10FFFF |
E4 – FC | — (315000) | vyhrazeno pro budoucí standardní rozšíření | |||
FD – FE | — (25200) | definované uživatelem | |||
FF | — | neplatný | |||
Celkový | 1112064 |
Jednobajtové a dvoubajtové body kódu jsou v podstatě GBK se znakem eura, mapování PUA pro nepřiřazené / uživatelem definované body a vertikální interpunkce. Čtyřbajtové schéma lze považovat za sestávající ze dvou jednotek, každá ze dvou bajtů. Každá jednotka má podobný formát jako dvoubajtový znak GBK, ale s rozsahem hodnot pro druhý bajt 0x30–0x39 ( ASCII kódy pro desetinná místa). První bajt má rozsah 0x81 až 0xFE, jako dříve. To znamená, že rutina vyhledávání řetězců, která je bezpečná pro GBK, by měla být také přiměřeně bezpečná pro GB18030 (podobně jako základní orientováno na bajty rutina vyhledávání je přiměřeně bezpečná EUC ).
To dává celkem 1 587 600 (126 × 10 × 126 × 10) možných 4 bajtových sekvencí, což snadno postačuje k pokrytí Unicode Je přiděleno 1112 064 (17 × 65 536 - 2048 náhradníků), rezervováno a neznakové body kódu.
Pro další komplikování bohužel neexistují žádná jednoduchá pravidla pro překlad mezi 4 bajtovou posloupností a její odpovídající kódový bod. Místo toho jsou kódy přidělovány postupně (přičemž první bajt obsahuje nejvýznamnější část a poslední nejméně významnou část) pouze na body kódu Unicode, které nejsou mapovány žádným jiným způsobem.[h] Například:
U + 00DE (Þ) → 81 30 89 37U + 00DF (ß) → 81 30 89 38U + 00E0 (à) → A8 A4U + 00E1 (á) → A8 A2U + 00E2 (â) → 81 30 89 39U + 00E3 ( ã) → 81 30 8A 30
V tabulce se používá ofsetová tabulka WHATWG a W3C verze GB 18030 pro efektivní překlad kódových bodů.[11] JIP[10] a glibc používají podobné definice rozsahu, aby zabránily plýtvání prostorem na velkých sekvenčních blocích.
Podpěra, podpora
![]() | Tato sekce potřebuje expanzi with: information on macOS. Můžete pomoci přidávat k tomu. (Říjen 2016) |
Kódování
Windows 2000 může podporovat kódování GB18030, pokud je balíček podpory GB18030[12] je nainstalován. Windows XP to může nativně podporovat. Otevřená databáze PostgreSQL podporuje GB18030 prostřednictvím své plné podpory pro UTF-8, tj. Jeho převodem do az UTF-8. Podobně Microsoft SQL Server podporuje GB18030 převodem do az UTF-16.
Přesněji řečeno, podpora kódování GB18030 ve Windows to znamená Kód Strana 54936 je podporován MultiByteToWideChar a WideCharToMultiByte. Kvůli zpětné kompatibilitě mapování lze mnoho souborů v GB18030 skutečně úspěšně otevřít jako starší kódová stránka 936, tj. GBK, i když kódová stránka 54936 není podporována. To však platí pouze v případě, že daný soubor obsahuje pouze znaky GBK. Načtení se nezdaří nebo způsobí poškozené výsledky, pokud soubor obsahuje znaky, které neexistují v GBK (viz § Technické údaje například).
GNU glibc gconv, knihovna kodeků znaků používaná ve většině distribucí Linuxu, podporuje GB 18030-2000 od 2.2,[13] a GB 18030-2005 od 2.14;[14] glibc zejména zahrnuje mapování jiných než PUA pro GB 18030-2005, aby se dosáhlo zpětného převodu.[15] GNU libiconv, alternativní ikona implementace často používaná v prostředích, která nejsou podobná systému UNIX podobná glibc Cygwin, podporuje GB 18030 od verze 1.4.[16]
Glyfy
Balíček podpory GB18030 pro Windows obsahuje SimSun18030.ttc, soubor kolekce písem TrueType, který kombinuje dvě čínská písma, SimSun-18030 a NSimSun-18030. The SimSun Písmo 18030 obsahuje všechny znaky[je zapotřebí objasnění ] v Unicode 2.1 plus nové znaky nalezené v Unicode CJK Unified Ideographs Extension Blok, i když navzdory svému názvu neobsahuje glyfy pro všechny znaky kódované GB 18030, protože všechny (asi milion) kódů Unicode ukazují až U + 10FFFF lze kódovat jako GB 18030. Certifikace shody GB 18030 vyžaduje pouze správné zacházení a rozpoznávání glyfů v povinné (dvoubajtové a CJK Ext. A) čínské části.[2]:4 Požadavek znaků PUA ve standardu však tuto implementaci brzdil.[7]
Další rodiny písem CJK jako HAN NOM[17] a Hanazono Mincho[18] poskytují širší pokrytí pro bloky rozšíření Unicode CJK Extension než SimSun-18030 nebo dokonce Simsun (Founder Extended), ale nepodporují ani všechny body kódu definované v Unicode 5.0.0.
Viz také
Poznámky
- ^ Všimněte si, že GB18030 vynechává náhradní; vidět #Mapování.
- ^ The znak eura je výjimka, která má v novějších verzích CP936 / GBK společnosti Microsoft jednobajtový kód 0x80 a v GB18030 dvoubajtový kód A2 E3.
- ^ Mezi kódy patří 66 neznaků Unicode.
- ^ Zdá se, že ICU chybně považuje tento bod kódu za platný, což není v žádné verzi publikovaných standardů. WHATWG přiřadí tento bajt U + 20AC (GBK znak eura ) ve svém univerzálním dekodéru gb2312-gbk-gb18030.
- ^ Podrobnější rozdělení tohoto rozsahu viz GBK (kódování znaků) § Kódování.
- ^ Některé body kódu jsou kódovány dvěma bajty (horní řádek), jiné čtyřmi bajty (spodní řádek). U + FFFF je kódován jako
84 31 A4 39
na straně 239 normy z roku 2005, ačkoli norma uvádí, pokud jde o84 39 FE 39
pro mapování BMP. - ^ Tyto jsou náhradní body kódu; mimo ně nemají žádný význam UTF-16 kódování.
- ^ Navíc kvůli kódování U + E7C7 a U + 1E3F, které byly zaměněny, je U + E7C7 ve vydání normy z roku 2005 kódován jako 81 35 F4 37, mezi U + 1E3E (81 35 F4 36) a U + 1E40 (81 35 F4 38). Proto pouze vydání z roku 2000 je zcela postupné při přidělování čtyřbajtových kódů jinak nezmapovaným kódovým bodům.
Reference
- ^ Anthony Fok (15.03.2002). „Aplikace registrace sady IANA pro GB18030“. Registrace znakové sady IANA. Citováno 2016-12-05.
- ^ A b C d CESI (2009-07-08). „GB18030 符合 性 问与答“ [Časté dotazy k souladu s GB18030]. Certifikační centrum CESI. Archivovány od originál dne 2016-09-28. Citováno 2016-10-12.
Strana 4 180 达到 以下 两个 要求 的 产品 , 为 符合 GB 18030-2005 强制 部分 的 产品 : ① 产品 可以 正确 输入 、 输出 、 180 GB 18030-2005 强制 部分 规定 的 全部 汉字 字符 ; ② 产品 可以 正确 识别 GB 18030-2005强制性 部分 规定 的 全部 汉字 字符 对应 的 编码。 [Produkt vyhovující povinné části GB 18030 musí být schopen správně a) zadávat, vydávat a zpracovávat všechny čínské znaky definované v povinné sadě; b) rozpoznat kódování znaků v povinné sadě.]
Alternativní URL - ^ A b C d E Správa standardizace v Číně (SAC) (2005-11-18). GB 18030-2005: Informační technologie - čínská kódovaná znaková sada.
- ^ „Unicode FAQ na GB 18030“. Projekt ICU. Citováno 10. září 2016.
- ^ A b GB 18030-2000: Informační technologie - čínské ideogramy kódované znakové sady pro výměnu informací - rozšíření pro základní sadu. Správa standardizace v Číně (SAC). 2000-03-17.
- ^ A b Lunde, Ken (2006). „Aktualizace L2 / 06-394 v GB 18030: 2005“. Registr dokumentů technické komise Unicode. Citováno 28. září 2016.
- ^ A b Lunde, Ken. „Pokud dojde k revizi gb18030, zvažte sladění standardu kódování · Vydání č. 27 · whatwg / kódování“. GitHub.
Kromě toho je podpora bodů kódu PUA v kontextu písem Noto CJK a Source Han celkem ne-startérem, hlavně proto, že se jedná o písma Pan-CJK, a použití PUA je v takových kontextech extrémně nebezpečné. [...] Jeden z moji přátelé na CESI se mnou sdíleli text z posledního konceptu před několika dny. To potvrdilo, že je zrušen požadavek PUA pro 24 znaků.
- ^ „Group: GBK 外 字“. GlyphWiki. Citováno 11. září 2016.
- ^ A b Lunde, Ken (prosinec 2008). Zpracování informací CJKV. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. Citováno 11. září 2016.
- ^ A b Autoritativní mapovací tabulka mezi GB18030-2000 a Unicode. ICU - mezinárodní komponenty pro Unicode. 2001-02-21. Zpřístupněno 4. 9. 2016.
- ^ „Standardní kódování # gb18030-index“. WHATWG. Citováno 2016-09-24.
- ^ Microsoft. „Balíček podpory GB18030“. Archivovány od originál dne 06.06.2012.
- ^ Drepper, Ulrichu. „Modul GB18030 iconv pro glibc“. glibc git. Citováno 29. listopadu 2016.
- ^ Drepper, Ulrichu. „Aktualizovat verzi GB18030 na verzi 2005“. glibc git. Citováno 29. listopadu 2016.
- ^ Weimer, Florian; O'Donell, Carlos. „Stav tabulek GB18030 (# 19575)“. Sourceware Bugzilla. Citováno 29. listopadu 2016.
- ^ „NEWS - libiconv.git - libiconv“. git.savannah.gnu.org. Citováno 2016-10-13.
- ^ VietUnicode. „/ hannom“. sourceforge.net. Citováno 2016-10-13.
- ^ „Písma Hanazono“. fonts.jp. Citováno 2016-10-13.
externí odkazy
- Registrace sady IANA pro GB18030
- "Souhrn v anglickém jazyce - -2 000" (PDF). 16. února 2001. Archivovány od originál (PDF) dne 02.02.2017.
- Úvod do GB18030 včetně vývoje z GB2312 a GBK (Sun / Internet Archive)
- Data JIP
- Unicode grafy
- Unicode CJK Unified Ideographs Extension A (PDF, 1,5 MB)
- Rozšíření Unified Ideographs Unicode CJK B (PDF, 13 MB)
- Balíček podpory GB18030 pro Windows 2000 / XP, včetně čínského, tibetského, yi, mongolského a thajského písma od společnosti Microsoft (Internetový archiv)
- Freewarová písma, editory a dokumentace SIL