GB 18030

GB18030 to standard określający oficjalny zestaw znaków Chińskiej Republiki Ludowej (ChRL).

Historyczny

Ten zestaw znaków został wydany pod oficjalną nazwą „Chinese National Standard GB 18030-2000: Information Technology – zestaw znaków zakodowanych w chińskich ideogramach do wymiany informacji – rozszerzenie zestawu podstawowego”. GB to skrót od Guójiā Biāozhǔn (国家 标准), co w języku chińskim oznacza krajowy standard .

Standard został opublikowany przez China Standard Press of Beijing (stolica Chińskiej Republiki Ludowej) w dniu17 marca 2000 r. i zaktualizowany 20 listopada 2000 r.. W1 st Wrzesień 2.001, obsługa tego zestawu znaków jest oficjalnie (w RPC) obowiązkowa dla całego oprogramowania sprzedawanego klientowi końcowemu RPC.

Najnowsza wersja „Chinese National Standard GB 18030-2005: Information technology – Chinese code set set” została opublikowana przez China Standard Press w dniu18 listopada 2005. Tylko wersja 2000 jest obowiązkowa dla certyfikacji zgodności GB 18030 z Chińskim Instytutem Normalizacji Elektroniki (CESI).

Opis

GB18030 można traktować jako format transportu Unicode (UTF) (czyli kodowanie wszystkich punktów kodowych Unicode ), który zachowuje zgodność ze starszymi (starszymi) zestawami znaków . Innymi słowy, jest to chiński odpowiednik UTF-8 (zachowujący zgodność z ASCII). Podobnie jak UTF-8, GB18030 jest nadzbiorem ASCII i może reprezentować cały zakres wartości punktów kodu Unicode . Ze względu na równoważność z Unicode, znaki GB18030 obsługują zarówno język uproszczony, jak i tradycyjny .

GB18030 zachowuje również zgodność z GBK (z wyjątkiem symbolu euro, który jest zakodowany jako pojedynczy bajt 0x80 w najnowszej wersji GBK firmy Microsoft i dwubajtowego kodu, A2 E3, w GB18030), który był standardowym istniejącym znakiem w Chińskiej Republice Ludowej w celu uproszczenia aktualizacji danych i oprogramowania do korzystania z GB18030. Części mapowanych danych pochodzą z tabeli przeglądowej (jak w GBK). Reszta jest obliczana algorytmicznie. Dziedziczy również złe aspekty ze (starych) starszych standardów, na których jest oparty (w szczególności potrzebny jest specjalny algorytm do wyszukiwania znaków ASCII w sekwencjach GB18030).

Wiele firm programistycznych już ustandaryzowało na podstawie danej wersji Unicode format wewnętrznej reprezentacji swoich danych i wywołań systemowych. Jednak większość obsługuje tylko punkty kodowe z PMB pierwotnie zdefiniowane Unicode 1.0, które obsługiwane tylko 65536 pozycji kodu i często są kodowane jako 16-bitowe UCS-2 .

W historycznie znaczącej zmianie dla oprogramowania zgodnego z Unicode, Chińska Republika Ludowa postanowiła wymagać obsługi niektórych punktów kodowych poza PMB. Oznacza to, że oprogramowanie nie może dłużej zakładać, że wszystkie znaki są 16-bitowymi jednostkami o stałym rozmiarze ( UCS-2 ). W rezultacie powinni albo przetwarzać dane ze znakami o zmiennej wielkości (np. UTF-8 lub UTF-16 ), które są najczęstszymi wyborami, albo wybrać większą stałą szerokość (np. UCS-4 lub UTF-32 ). Firma Microsoft dokonała migracji z UCS-2 do UTF-16 w systemie Windows 2000.

Krój pisma SimSun 18030 umożliwia wyświetlanie znaków GB 18030, który zawiera wszystkie znaki z Unicode 2.1 oraz nowe znaki znajdujące się w dodatku A bloku Unicode do ujednoliconych ideogramów CJC.

Szczegóły techniczne

Schemat 4-bajtowy można traktować jako składający się z dwóch jednostek, z których każda ma dwa bajty. Każda jednostka ma format podobny do dwubajtowego znaku GBK, ale z zakresem wartości dla drugiego bajtu 0x30-0x39 (kody ASCII dla cyfr dziesiętnych). Pierwszy bajt mieści się w zakresie od 0x81 do 0xFE, jak poprzednio. Oznacza to, że procedura bezpiecznego wyszukiwania znaków dla GBK powinna być również bezpieczna dla GB18030 (w taki sam sposób, w jaki wyszukiwanie zorientowane bajtowo jest dość bezpieczne dla EUC ).

Daje to w sumie 1587600 (126 × 10 × 126 × 10) możliwych sekwencji 4-bajtowych, co obecnie wystarcza do pokrycia 1114 112 (17 × 65 536) punktów kodowych Unicode.

Sprawę komplikuje fakt, że nie ma prostej reguły konwersji sekwencji 4-bajtowych na odpowiadający im punkt kodowy . W rzeczywistości te liczby są przydzielane sekwencyjnie i big endian (big-endian) tylko do punktów kodowych Unicode, które nie są mapowane w żaden inny sposób. Na przykład :


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

Bibliografia

  1. CESI
  2. Międzynarodowe doradztwo LLC
  3. Dodatek Unicode A do ujednoliconych ideogramów CJCC

Bibliografia

Zobacz również

Powiązane artykuły

Linki zewnętrzne