GB 18030

GB 18030
GB18030 encoding.svg
GB 18030 Codierungslayout. "Halbcodes" zeigt Codes an, die Paare als vier-Byte-Codes verwendet haben.
Mime / Iana GB18030
Alias ​​(e) Code Seite 54936
Sprachen) International, aber in erster Linie bestimmt für Chinesisch
Standard GB 18030-2022, GB 18030-2005, GB 18030-2000
Einstufung Unicode -Transformationsformat, erweiterte ASCII,[a] Codierung der variablen Breite, CJK -Codierung
Erweitert EUC-CN, GBK
Transformationen / codiert ISO 10646 (Unicode)
Vorausgegangen von GBK, GB2312
  1. ^ Nicht im strengsten Sinne des Begriffs, da ASCII -Bytes als Trail -Bytes erscheinen können.

GB 18030 ist ein Chinesische Regierung Standard, beschrieben als Informationstechnologie - chinesische codierte Charakter -Set und definiert den erforderlichen Sprach- und Charakterunterstützung, der für Software in erforderlich ist China. GB18030 ist der registrierte Internetname für den Beamten Zeichensatz des Volksrepublik China (PRC) Ersetzungen GB2312.[1] Als ein Unicode -Transformationsformat[a] (d. H. Eine Codierung von allen Unicode Codepunkte), GB18030 unterstützt beide vereinfacht und traditionell Chinesische Charaktere. Es ist auch kompatibel mit Legacy -Codierungen, einschließlich GB2312, CP936,[b] und GBK 1.0.

Zusätzlich zur "GB18030 -Charaktercodierung" enthält dieser Standard Anforderungen, welche Skripte unterstützt werden müssen, Schriftunterstützung usw.[2]

Geschichte

Das GB18030-Charakter-Set wird formell als "Chinesische National Standard GB 18030-2005: Informationstechnologie-chinesisches codiertes Zeichensatz" bezeichnet. Gb Abkürzes Guójiā biāozhǔn (国家 标准), was bedeutet Nationaler Standard auf Chinesisch. Der Standard wurde vom 8. November 2005 von der China Standard Press in Peking veröffentlicht. Nur ein Teil des Standards ist obligatorisch.[2] Seit dem 1. Mai 2006 ist die Unterstützung für die obligatorische Untergruppe offiziell für alle in der VR China verkauften Softwareprodukte erforderlich.

Verschiedene Unicode -Mappings zwischen GB 18030 -Versionen
GB -Byte
Reihenfolge
Unicode -Codepunkt
GB 18030-2000 GB 18030-2005
A8 v. Chr. (Ḿ) U+E7C7 U+1E3f ḿ
81 35 F4 37 U+1E3f ḿ U+E7C7

Eine ältere Version des Standards, bekannt als "Chinesische National Standard GB 18030-2000: Informationstechnologie-Chinese-Ideogramme codierte Zeichen, die für den Informationsaustausch gesetzt wurden-Auszug für das Basissatz", wurde am 17. März 2000 veröffentlicht. Das Codierungsschema bleibt die Gleiches gilt für die neue Version und der einzige Unterschied zur GB-zu-Unicode-Mapping besteht darin, dass GB 18030-2000 den Charakter zugeordnet hat A8 BC (ḿ) zu einem privaten Verwendungscodepunkt U+E7C7 und Charakter 81 35 F4 37 (ohne Glyphe an u+1e3f (ḿ) anzugeben, während GB 18030-2005 diese beiden Mapping-Zuordnungen wechselt.[3]: 534 Weitere Codepunkte sind jetzt mit Zeichen zugeordnet, da die Aktualisierung von Unicode, besonders das Aussehen von CJK Unified Ideographs Erweiterung B. Einige Zeichen verwendet von Ethnische Minderheiten in China, wie zum Beispiel Mongolische Charaktere und Tibetische Charaktere (GB 16959-1997 und GB/T 20542-2006) wurden ebenfalls hinzugefügt, was die Umbenennung des Standards ausmacht.

Im Vergleich zu seinen Vorfahren wurde die Mapping von GB 18030 auf Unicode für die 81 Zeichen modifiziert, denen vorläufig ein Unicode zugewiesen wurde Privatnutzungsbereich Codepunkt (U+E000 - F8ff) in GBK 1.0 und später in Unicode codiert.[4] Dies ist in Anhang E von GB 18030 angegeben.[3]: 534[5]: 499 Es gibt 24 Zeichen in GB 18030-2005, die noch an Unicode pua zugeordnet sind.[6] Laut Ken Lunde wird der Entwurf einer neuen Überarbeitung von GB 18030 von 2018 diese Zuordnungen schließlich beseitigen.[7]

Private Verwendung von Zeichen in GB-to-Unicode-Mappings
GB -Byte
Reihenfolge
Unicode -Codepunkt (blau = privates Gebrauch)
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 EC U+E794 U+Fe17
A6 ed U+E795 U+Fe18
A6 F3 U+E796 U+Fe19
A8 v. Chr 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+499b
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

Als nationaler Standard

Der obligatorische Teil von GB 18030-2005 besteht aus 1 Byte- und 2 Byte-Codierung zusammen mit 4 Byte-Codierung für CJK Unified Ideographs Erweiterung A. Die entsprechenden Unicode -Codepunkte dieser Untergruppe, einschließlich vorläufiger privater Zuweisungen, liegen vollständig in der Bmp.[3]: 3 Diese Teile entsprechen dem vollständig obligatorischen GB 18030-2000.[2]: 2

Die meisten großen Computerunternehmen hatten bereits auf einer Version von Unicode als Hauptformat für die Verwendung in ihren Binärformaten und Betriebssystemen standardisiert. Sie hatten jedoch meistens nur unterstützt Codepunkte in dem Bmp ursprünglich in Unicode 1.0 definiert, das nur 65.536 CodePoints unterstützte und häufig in 16 Bit als codiert wurde UCS-2.

In einem Schritt historischer Bedeutung für Software, die Unicode unterstützt, die PRC beschlossen, die Unterstützung bestimmter Codepunkte zu erstellen[die?] außerhalb des BMP. Dies bedeutet, dass Software nicht mehr durch die Behandlung von Charakteren als 16-Bit-Entitäten mit fester Breite davonkommen kann (Entitäten mit fester Breite (UCS-2). Daher müssen sie entweder die Daten in einem Format variabler Breite verarbeiten (wie z. UTF-8 oder UTF-16), die die häufigste Entscheidungen sind oder sich in ein größeres Format fester Breite bewegen (wie z. UCS-4 oder UTF-32). Microsoft hat die Änderung von UCS-2 zu UTF-16 mit Windows 2000 vorgenommen.

Kartierung

GB 18030 definiert eine Codierung von One (ASCII), Two (Extended GBK) oder Vier-Byte (UTF). Die Zwei-Byte-Codes werden in einer Nachschlagetabelle definiert, während die Vier-Byte UCS. GB 18030 erbt die schlechten Aspekte von GBKVor allem benötigen Sie einen speziellen Code, um ASCII -Zeichen in einer GB18030 -Sequenz sicher zu finden.

GB 18030 Codierung[3]: 3[5]: 252[10]
GB 18030 Codepunkte[c] Unicode
Byte 1 (MSB) Byte 2 Byte 3 Byte 4
007F 128 0000007F
80 - ungültig[d]
81FE 40FE außer 7F[e] 23940 0080FFFF außer D800DFFF[f]
8184 3039 81FE 3039 39420
85 - (12600)) reserviert für die zukünftige Charaktererweiterung
868F - (126000)) reserviert für die zukünftige ideografische Erweiterung
nicht zugewiesen - D800DFFF[g]
90E3 3039 81FE 3039 1048576 1000010ffff
E4FC - (315000)) reserviert für die zukünftige Standardverlängerung
FDFE - (25200)) benutzerdefinierten
FF - ungültig
Gesamt 1112064

Die Ein- und Zwei-Byte-Codepunkte sind im Wesentlichen GBK Mit dem Euro-Zeichen, PUA-Zuordnungen für nicht zugewiesene/benutzerdefinierte Punkte und vertikale Punkten. Das vier Byte -Schema kann als bestehend aus zwei Einheiten von jeweils zwei Bytes angesehen werden. Jede Einheit hat ein ähnliches Format wie ein GBK -Zwei -Byte -Zeichen, jedoch mit einem Wertebereich für das zweite Byte von 0x30–0x39 (die ASCII Codes für Dezimalstellen). Das erste Byte hat den Bereich 0x81 bis 0xFe wie zuvor. Dies bedeutet, dass eine String -Suchroutine, die für GBK sicher ist Byte-orientiert Suchroutine ist einigermaßen sicher für EUC).

Dies ergibt insgesamt 1.587.600 (126 × 10 × 126 × 10) mögliche 4 Byte -Sequenzen, was leicht ausreicht, um abzudecken Unicode's 1,112.064 (17 × 65536 - 2048 Surrogate) zugewiesene, reservierte und nichtcharakteristische Codepunkte.

Um die Sache weiter zu komplizieren, gibt es leider keine einfachen Regeln, um zwischen einer 4 -Byte Codepunkt. Stattdessen werden die Codes nacheinander zugeordnet (wobei das erste Byte den bedeutendsten Teil und den letzten der am wenigsten signifikante Teil enthält) nur zu Unicode -Codepunkten, die in keiner anderen Weise zugeordnet sind.[h] Zum Beispiel:

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 89 89 89 89 89 89 89 89 89 89) → 81 30 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89) → 81 30 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89) → A8 (→ 81 30 89) 39 U+00E3 (ã) → 81 30 8a 30

Eine Offset -Tabelle wird in der verwendet Waswg und W3c Version von GB 18030 zur effizienten Übersetzung von Codepunkten.[11] ICU[10] und GLIBC verwenden ähnliche Bereichsdefinitionen, um den Verschwendung von Raum in großen sequenziellen Blöcken zu vermeiden.

Die Unterstützung

Codierung

Windows 2000 kann die GB18030 -Codierung unterstützen, wenn GB18030 Support -Paket[12] ist installiert. Windows XP kann es nativ unterstützen. Die Open Source PostgreSQL-Datenbank unterstützt GB18030 durch ihre vollständige Unterstützung für UTF-8, d. H. Durch die Konvertierung in UTF-8. In ähnlicher Weise unterstützt Microsoft SQL Server GB18030 durch Konvertierung zu UTF-16.

Insbesondere die Unterstützung der GB18030 -Codierung unter Windows bedeutet dies Code Seite 54936 wird unterstützt von Multibytetowidechar und Widechartomultibyte. Aufgrund der Rückwärtskompatibilität der Zuordnung können viele Dateien in GB18030 tatsächlich als Legacy -Code -Seite 936 erfolgreich geöffnet werden, dh GBK, auch wenn der Code -Seite 54936 nicht unterstützt wird. Dies gilt jedoch nur, wenn die fragliche Datei nur GBK -Zeichen enthält. Das Laden schlägt fehl oder verursacht ein beschädigtes Ergebnis, wenn die Datei Zeichen enthält, die in GBK nicht vorhanden sind (siehe § Technische Details zum Beispiel).

GNU Glibc's GCONV, die Charakter-Codec-Bibliothek, die für die meisten Linux-Verteilungen verwendet wird, unterstützt GB 18030-2000 seit 2.2,[13] und GB 18030-2005 seit 2.14;[14] GLIBC umfasst insbesondere Nicht-PUA-Zuordnungen für GB 18030-2005, um die Umwandlung von Roundtrips zu erreichen.[15] GNU libiconv, eine Alternative Ikonv Implementierung, die häufig in nicht-glibc unix-ähnlichen Umgebungen wie verwendet Cygwin, unterstützt GB 18030 seit Version 1.4.[16]

Glyphen

Das Support-Paket für Windows GB18030 enthält SIMSUN18030.TTC, eine TrueType-Schriftstellungsdatei, die zwei chinesische Schriftarten kombiniert, Simsun-18030 und NSIMSUN-18030. Das Simsun 18030 Schrift beinhaltet alle Charaktere[Klarstellung erforderlich] In Unicode 2.1 plus neue Zeichen, die in der Unicode CJK Unified Ideographs -Erweiterung ein Block gefunden wurden, aber trotz seines Namen Kann als GB 18030 codiert werden. GB 18030 Compliance-Zertifizierung erfordert nur die korrekte Handhabung und Erkennung von Glyphen im obligatorischen (zwei Byte- und CJK ext. A) Chinesischer Teil.[2]: 4 Dennoch hat die Anforderung von PUA -Charakteren im Standard diese Implementierung behindert.[7]

Andere CJK -Schriftfamilien Wie Han Nom[17] und Hanazono Mincho[18] Geben Sie eine breitere Abdeckung für UNICODE CJK-Erweiterungsblöcke an als Simsun-18030 oder sogar Simsun (Gründer erweitert), unterstützen jedoch auch nicht alle in Unicode 5.0.0 definierten Codepunkte.

Siehe auch

Anmerkungen

  1. ^ Beachten Sie, dass GB18030 Ersatzländer ausgelöst; sehen #Kartierung.
  2. ^ Das Eurozeichen ist eine Ausnahme, die in den späteren Versionen von CP936/GBK und einem zwei Byte -Code von A2 E3 in GB18030 einen einzelnen Byte -Code von 0x80 erhält.
  3. ^ Die Codepunkte enthalten die 66 Unicode -Nichtcharakterien.
  4. ^ Die Intensivstation scheint diesen Codepunkt fälschlicherweise gültig zu betrachten, was in keinen Versionen der veröffentlichten Standards liegt. Waswg Weisen Sie dieses Byte U+20AC (GBK) zu Eurozeichen) in seinem universellen GB2312-GBK-GB18030-Decoder.
  5. ^ Für eine feinere Aufteilung dieses Bereichs siehe GBK (Zeichenkodierung) § Codierung.
  6. ^ Einige Codepunkte werden mit zwei Bytes (obere Reihe) codiert, andere mit vier Bytes (untere Reihe). U+FFFF ist codiert als 84 31 A4 39 auf Seite 239 des Standards 2005, obwohl der Standard so weit wie möglich entspricht 84 39 FE 39 Für BMP -Mapping.
  7. ^ Diese sind Ersatzcodepunkte; Sie haben keine Bedeutung außerhalb von UTF-16 Codierung.
  8. ^ Darüber hinaus wird U+E7C7 aufgrund der Encodings von U+E7C7 und U+1E3F in der Ausgabe 2005 des Standards als 81 35 F4 37 zwischen U+1E3E (81 35 F4 36) und U+1E40 codiert (81 35 F4 38). Daher ist nur die 2000-Ausgabe bei der Zuweisung der Vier-Byte-Codes den ansonsten nicht kartierenden Codepunkten völlig sequentiell.

Verweise

  1. ^ Anthony Fok (2002-03-15). "Anwendung der IANA Charset -Registrierung für GB18030". IANA Charakter -Set -Registrierungen. Abgerufen 2016-12-05.
  2. ^ a b c d CESI (2009-07-08). "GB18030 符合性 问 与 答" [GB18030 Compliance FAQ]. CESI -Zertifizierungszentrum. Archiviert von das Original Am 2016-09-28. Abgerufen 2016-10-12. Seite 4 同时 达到 以下 两 个.强制性 部分 规定 的 全部 汉字 字符 对应 的 编码。 [Ein Produkt, das mit dem obligatorischen Teil von GB 18030 entspricht, muss in der Lage sein, alle im obligatorischen Set definierten chinesischen Zeichen einzugeben, auszugeben und zu verarbeiten. b) Erkennen von Codings für Zeichen im obligatorischen Satz.] Alt URL
  3. ^ a b c d e Standardisierungsverwaltung Chinas (SAC) (2005-11-18). GB 18030-2005: Informationstechnologie-Chinesen codierter Charaktersatz.
  4. ^ "Unicode FAQ auf GB 18030". ICU -Projekt. Abgerufen 10. September 2016.
  5. ^ a b GB 18030-2000: Informationstechnologie-chinesische Ideogramme codierte Zeichen für den Informationsaustausch-Extension für den Basissatz. Standardisierungsverwaltung Chinas (SAC). 2000-03-17.
  6. ^ a b Lunde, Ken (2006). "L2/06-394 Update zu GB 18030: 2005". Dokumentregister des Unicode Technical Committee. Abgerufen 28. September 2016.
  7. ^ a b Lunde, Ken. "Wenn GB18030 überarbeitet wird, sollten Sie den Codierungsstandard ausrichten · Ausgabe Nr. 27 · Whatwg/Codierung". GitHub. Außerdem ist die Unterstützung von PUA-Codepunkten im Kontext der Noto CJK- und Source Han-Schriftarten ein totaler Nichtstarter, vor allem, weil es sich um Pan-CJK-Schriftarten handelt, und die PUA-Verwendung ist in solchen Kontexten äußerst gefährlich. [...] einer von äußerst gefährlich. [...] einer von äußerst gefährlich. Meine Freunde von Cesi haben mir den Text vor ein paar Tagen mit mir aus dem letzten Entwurf geteilt. Dies bestätigte, dass die PUA -Anforderung für die 24 Zeichen aufgehoben wird.
  8. ^ "Gruppe: GBK 外字". Glyphwwiki. Abgerufen 11. September 2016.
  9. ^ a b Lunde, Ken (Dezember 2008). CJKV -Informationsverarbeitung. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. Abgerufen 11. September 2016.
  10. ^ a b Autoritative Mapping-Tabelle zwischen GB18030-2000 und Unicode. ICU - Internationale Komponenten für Unicode. 2001-02-21. Zugriff auf 2016-09-04.
  11. ^ "Codierung Standard # GB18030-Index". Waswg. Abgerufen 2016-09-24.
  12. ^ Microsoft. "GB18030 Support -Paket". Microsoft. Archiviert von das Original Am 2012-06-05.
  13. ^ Drepper, Ulrich. "GB18030 ICONV -Modul für GLIBC". Glibc Git. Abgerufen 29. November 2016.
  14. ^ Drepper, Ulrich. "Update GB18030 bis 2005 Version". Glibc Git. Abgerufen 29. November 2016.
  15. ^ Weimer, Florian; O'Donell, Carlos. "Status von GB18030 -Tabellen (#19575)". Sourceware Bugzilla. Abgerufen 29. November 2016.
  16. ^ "Nachrichten - libiconv.git - libiconv". git.savannah.gnu.org. Abgerufen 2016-10-13.
  17. ^ Vietunikode. "/Hannom". SourceForge.net. Abgerufen 2016-10-13.
  18. ^ "Hanazono -Schriftarten". fonts.jp. Abgerufen 2016-10-13.

Externe Links