GB 18030

редактировать
Кодировка символов Unicode, в основном используемая для упрощенного китайского языка
GB 18030
GB18030 encoding.svg GB 18030 макет кодировки. «Полукоды» обозначают коды, используемые в парах как четырехбайтовые коды.
MIME / IANAGB18030
Псевдоним (а)Кодовая страница 54936
Язык (и)Международный, но в первую очередь предназначен для Китайского
СтандартGB 18030-2005, GB 18030-2000
КлассификацияФормат преобразования Unicode, расширенный ASCII, кодирование переменной ширины, кодирование CJK
РасширяетEUC-CN, GBK
Преобразует / кодируетISO 10646 (Unicode )
, предшествующийGBK, GB2312
  • v
  • t

GB 18030 - это стандарт правительства Китая, описываемый как информационные технологии - китайская кодировка набор символов и определяет требуемый язык и поддержку символов, необходимую для программного обеспечения в Китае. GB18030 - это зарегистрированное Интернет-имя для официального набора символов для Китайская Народная Республика (КНР) заменяет GB2312. В качестве формата преобразования Unicode (т. Е. Кодирования всего кода Unicode po ints) GB18030 поддерживает как упрощенные, так и традиционные китайские иероглифы. Он также совместим с устаревшими кодировками, включая GB2312, CP936 и GBK 1.0.

В дополнение к «кодировке символов GB18030» этот стандарт содержит требования о том, какие скрипты должны поддерживаться, поддержка шрифтов и т. Д.

Содержание
  • 1 История
  • 2 В качестве национального стандарта
  • 3 Отображение
  • 4 Поддержка
    • 4.1 Кодирование
    • 4.2 Глифы
  • 5 См. Также
  • 6 Примечания
  • 7 Ссылки
  • 8 Внешние ссылки
История

Набор символов GB18030 официально называется «Китайский национальный стандарт GB 18030-2005: Информационные технологии - набор символов китайского кодирования». GB сокращает Guójiā Biāozhǔn (国家 标准), что означает национальный стандарт на китайском языке. Стандарт был опубликован China Standard Press, Пекин, 8 ноября 2005 г. Только часть стандарта является обязательной. С 1 мая 2006 г. поддержка обязательного подмножества официально требуется для всех программных продуктов, продаваемых в КНР.

Различные сопоставления Unicode между версиями GB 18030
GB байт. последовательностьКодовая точка Unicode
GB 18030-2000GB 18030-2005
A8 BC (ḿ)U + E7C7U + 1E3F ḿ
81 35 F4 37U + 1E3F ḿU + E7C7

Старая версия стандарта, известная как "китайский Национальный стандарт GB 18030-2000: Информационные технологии - Набор символов с кодировкой китайских идеограмм для обмена информацией - Расширение для базового набора », был опубликован 17 марта 2000 г. Схема кодирования осталась прежней в новой версии, и единственная разница в Преобразование GB в Unicode заключается в том, что GB 18030-2000 сопоставил символ A8 BC(ḿ) с кодовой точкой частного использования U + E7C7, а символ 81 35 F4 37(без указание любого глифа) на U + 1E3F (ḿ), тогда как GB 18030-2005 меняет местами эти два назначения сопоставления. Больше кодовых точек теперь связано с символами из-за обновления Unicode, особенно появления унифицированных иероглифов CJK Extension B. Некоторые символы, используемые этническими меньшинствами в Китае, такие как монгольские символы и тибетские символы (-1997 и -2006), также были добавлены, что объясняет переименование стандарта.

По сравнению со своими предками отображение GB 18030 в Unicode было изменено для 81 символа, которым предварительно была назначена кодовая точка Unicode Private Use Area (U + E000 – F8FF) в GBK 1.0. и которые позже были закодированы в Unicode. Это указано в Приложении E к стандарту GB 18030. В GB 18030-2005 есть 24 символа, которые по-прежнему сопоставлены с Unicode PUA. По словам Кена Лунде, в проекте новой версии GB 18030 от 2018 г. эти сопоставления будут окончательно устранены.

Символы частного использования в сопоставлениях из ГБ в Unicode
байт из ГБ. последовательностьUnicode кодовая точка (синий = частное использование)
GBK 1.0GB 18030. -2005Unicode 4.1
A6 D9U + E78DU + FE10 ︐
A6 DAU + E78EU + FE12 ︒
A6 DBU + E78FU + FE11 ︑
A6 DCU + E790U + FE13 ︓
A6 DDU + E791U + FE14 ︔
A6 DEU + E792U + FE15 ︕
A6 DFU + E793U + FE16 ︖
A6 ECU + E794U + FE17 ︗
A6 EDU + E795U + FE18 ︘
A6 F3U + E796U + FE19 ︙
A8 BCU + E7C7U + 1E3F ḿ
A8 BFU + E7C8U + 01F9 ǹ
A9 89U + E7E7U + 303E 〾
A9 8AU + E7E8U + 2FF0 ⿰
A9 8BU + E7E9U + 2FF1 ⿱
A9 8CU + E7EAU + 2FF2 ⿲
A9 8DU + E7EBU + 2FF3 ⿳
A9 8EU + E7ECU + 2FF4 ⿴
A9 8FU + E7EDU + 2FF5 ⿵
A9 90U + E7EEU + 2FF6 ⿶
A9 91U + E7EFU + 2FF7 ⿷
A9 92U + E7F0U + 2FF8 ⿸
A9 93U + E7F1U + 2FF9 ⿹
A9 94U + E7F2U + 2FFA ⿺
A9 95U + E7F3U + 2FFB ⿻
FE 50U + E815U + 2E81 ⺁
FE 51U + E816U + 20087 𠂇
FE 52U + E817U + 20089 𠂉
FE 53U + E818U + 200CC 𠃌
FE 54U + E819U + 2E84 ⺄
FE 55U + E81AU + 3473 㑳
FE 56U + E81BU + 3447 㑇
FE 57U + E81CU + 2E88 ⺈
FE 58U + E81DU + 2E8B ⺋
FE 59U + E81EU + 9FB4 龴
FE 5AU + E81FU + 359E 㖞
FE 5BU + E820U + 361A 㘚
FE 5CU + E821U + 360E 㘎
FE 5DU + E822U + 2E8C ⺌
FE 5EU + E823U + 2E97 ⺗
FE 5FU + E824U + 396E 㥮
FE 60U + E825U + 3918 㤘
FE 61U + E826U + 9FB5 龵
FE 62U + E827U + 39CF 㧏
FE 63U + E828U + 39DF 㧟
FE 64U + E829U + 3A73 㩳
FE 65U + E82AU + 39D0 㧐
FE 66U + E82BU + 9FB6 龶
FE 67U + E82CU + 9FB7 龷
FE 68U + E82DU + 3B4E 㭎
FE 69U + E82EU + 3C6E 㱮
FE 6AU + E82FU + 3CE0 㳠
FE 6BU + E830U + 2EA7 ⺧
FE 6CU + E831U + 215D7 𡗗
FE 6DU + E832U + 9FB8 龸
FE 6EU + E833U + 2EAA ⺪
FE 6FU + E834U + 4056 䁖
FE 70U + E835U + 415F 䅟
FE 71U + E836U + 2EAE ⺮
FE 72U + E837U +4337 䌷
FE 73U + E838U + 2EB3 ⺳
FE 74U + E839U + 2EB6 ⺶
FE 75U + E83AU + 2EB7 ⺷
FE 76U + E83BU + 2298F 𢦏
FE 77U + E83CU + 43B1 䎱
FE 78U + E83DU + 43AC 䎬
FE 79U + E83EU + 2EBB ⺻
FE 7AU + E83FU + 43DD 䏝
FE 7BU + E840U + 44D6 䓖
FE 7CU + E841U + 4661 䙡
FE 7DU + E842U + 464C䙌
FE 7EU + E843U + 9FB9 龹
FE 80U + E844U + 4723 䜣
FE 81U + E845U + 4729 䜩
FE 82U + E846U + 477C 䝼
FE 83U + E847U + 478D 䞍
FE 84U + E848U + 2ECA ⻊
FE 85U + E849U + 4947 䥇
FE 86U + E84AU + 497A 䥺
FE 87U + E84BU + 497D 䥽
FE 88U + E84CU + 4982 䦂
FE 89U + E84DU + 4983 䦃
FE 8AU + E84EU + 4985 䦅
FE 8BU + E84FU + 4986 䦆
FE 8CU + E850U + 499F 䦟
FE 8DU + E851U + 499B 䦛
FE 8EU + E852U + 49B7 䦷
FE 8FU + E853U + 49B6 䦶
FE 90U + E854U + 9FBA 龺
FE 91U + E855U + 241FE 𤇾
FE 92U + E856U + 4CA3 䲣
FE 93U + E857U + 4C9F 䲟
FE 94U + E858U + 4CA0 䲠
FE 95U + E859U + 4CA1 䲡
FE 96U + E85AU + 4C77 䱷
FE 97U + E85BU + 4CA2 䲢
FE 98U + E85CU + 4D13 䴓
FE 99U + E85DU + 4D14 䴔
FE 9AU + E85EU + 4D15 䴕
FE 9BU + E85FU + 4D16 䴖
FE 9CU + E860U + 4D17 䴗
FE 9DU + E861U + 4D18 䴘
FE 9EU + E862U + 4D19 䴙
FE 9FU + E863U + 4DAE 䶮
FE A0U + E864U + 9FBB 龻
В качестве национального стандарта

Обязательная часть GB 18030-2005 состоит из 1-байтового и 2-байтового кодирования вместе с 4-байтовым кодированием для унифицированных иероглифов CJK Расширение A. Соответствующие кодовые точки Unicode этого подмножества, включая временные частные назначения, полностью лежат в BMP. Эти части соответствуют полностью обязательному стандарту GB 18030-2000.

Большинство крупных компьютерных компаний уже стандартизировали некоторую версию Unicode в качестве основного формата для использования в своих двоичных форматах и ​​вызовах ОС. Однако они в основном поддерживали только кодовых точек в BMP, первоначально определенном в Unicode 1.0, который поддерживал только 65 536 кодовых точек и часто кодировался в 16 битах как UCS-2.

Сделав ход, имеющий историческое значение для программного обеспечения, поддерживающего Unicode, PRC решил обязать поддержку определенных кодовых точек за пределами BMP. Это означает, что программное обеспечение больше не может обрабатывать символы как 16-битные объекты фиксированной ширины (UCS-2 ). Поэтому они должны либо обрабатывать данные в формате переменной ширины (например, UTF-8 или UTF-16 ), что является наиболее распространенным выбором, либо перейти к более крупному фиксированному формат ширины (например, UCS-4 или UTF-32 ). Microsoft внесла изменение с UCS-2 в UTF-16 с Windows 2000.

Отображение

GB 18030 определяет один (ASCII), два (расширенный GBK) или четырехбайтовый (UTF)) кодирование. Двухбайтовые коды определены в поисковой таблице, в то время как четырехбайтовые коды определяются последовательно (следовательно, алгоритмически) для заполнения незакодированных частей в UCS. GB 18030 наследует плохие аспекты GBK, в первую очередь требующий специального кода для безопасного поиска символов ASCII в последовательности GB18030.

Кодировка GB 18030
GB 18030кодовых точекUnicode
байт 1 (MSB)байт 2байт 3байт 4
007F1280000- 007F
80недопустимый
81FE40FEкроме 7F239400080- FFFFкроме D800- DFFF
8184303981FE303939420
85- (12600)зарезервировано для будущего расширения символа
868F- (126000)зарезервировано для будущего идеографического расширения
не назначеноD800- DFFF
90E3303981FE3039104857610000- 10FFFF
E4FC- (315000)зарезервировано для будущего стандартного расширения
FDFE- (25200)определяемый пользователем
FFнедопустимый
Всего1112064

Одно- и двухбайтовые кодовые точки по существу GBK со знаком евро, сопоставлениями PUA для неназначенных / определенных пользователем точек и вертикальной пунктуации. Четырехбайтовую схему можно представить как состоящую из двух блоков, каждая по два байта. Каждый блок имеет формат, аналогичный двухбайтовому символу GBK, но с диапазоном значений для второго байта 0x30–0x39 (коды ASCII для десятичных цифр). Первый байт, как и раньше, имеет диапазон от 0x81 до 0xFE. Это означает, что процедура поиска строки, безопасная для GBK, также должна быть достаточно безопасной для GB18030 (во многом так же, как базовая процедура поиска , ориентированная на байты, достаточно безопасна для EUC ).

Это дает в общей сложности 1587600 (126 × 10 × 126 × 10) возможных 4-байтовых последовательностей, которых легко достаточно, чтобы покрыть 1,112 064 Unicode (17 × 65536 - 2048 суррогатов) назначенные, зарезервированные и несимвольные кодовые точки.

К сожалению, что еще больше усложняет ситуацию, нет простых правил для преобразования между 4-байтовой последовательностью и соответствующей ей кодовой точкой. Вместо этого коды распределяются последовательно (первый байт содержит наиболее значительную часть, а последний - наименее значимую часть) только кодовым точкам Unicode, которые не отображаются каким-либо другим образом. Например:

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

Таблица смещения используется в версиях WHATWG и W3C GB 18030 для эффективного перевода кодовых точек. ICU и glibc используют похожие определения диапазонов, чтобы не тратить место на большие последовательные блоки.

Поддержка

Кодировка

Windows 2000 может поддерживать кодировку GB18030, если установлен пакет поддержки GB18030. Windows XP может поддерживать это изначально. База данных PostgreSQL с открытым исходным кодом поддерживает GB18030 за счет полной поддержки UTF-8, то есть путем преобразования его в UTF-8 и обратно. Аналогичным образом Microsoft SQL Server поддерживает GB18030 путем преобразования в UTF-16 и обратно.

В частности, поддержка кодировки GB18030 в Windows означает, что кодовая страница 54936 поддерживается MultiByteToWideCharи WideCharToMultiByte. Благодаря обратной совместимости сопоставления, многие файлы в GB18030 могут быть успешно открыты как устаревшая кодовая страница 936, то есть GBK, даже если кодовая страница 54936 не поддерживается. Однако это верно только в том случае, если рассматриваемый файл содержит только символы GBK. Загрузка не удастся или приведет к повреждению результата, если файл содержит символы, которых нет в GBK (см. § Технические детали для примеров).

GNU glibc gconv, библиотека кодеков символов, используемая в большинстве дистрибутивов Linux, поддерживает GB 18030-2000 с 2.2 и GB 18030-2005 с 2.14; glibc, в частности, включает сопоставления не-PUA для GB 18030-2005, чтобы обеспечить двустороннее преобразование. GNU libiconv, альтернативная реализация iconv, часто используемая в UNIX-подобных средах, отличных от glibc, таких как Cygwin, поддерживает GB 18030, начиная с версии 1.4.

Глифы

Пакет поддержки GB18030 для Windows содержит SimSun18030.ttc, файл коллекции шрифтов TrueType, который объединяет два китайских шрифта, SimSun-18030 и NSimSun-18030. Шрифт SimSun 18030 включает в себя все символы Unicode 2.1 плюс новые символы, найденные в блоке Unicode CJK Unified Ideographs Extension A, хотя, несмотря на его название, он не содержит глифов для всех символов, закодированных в GB 18030, поскольку все (около миллиона) кодовых точек Unicode до U + 10FFFF могут быть закодированы как GB 18030. Сертификация соответствия GB 18030 требует только правильной обработки и распознавания глифов в обязательной (двухбайтовой и CJK Ext. A) китайской части. Тем не менее, требование символов PUA в стандарте препятствовало этой реализации.

Другие семейства шрифтов CJK, такие как HAN NOM и Hanazono Mincho, обеспечивают более широкий охват блоков расширения Unicode CJK, чем SimSun-18030 или даже Simsun (Founder Extended), но они также не поддерживают все кодовые точки, определенные в Unicode 5.0.0.

См. Также
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-21 08:40:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте