Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

История [ править ]

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

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

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

Как национальный стандарт [ править ]

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

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

Сделав шаг, имеющий историческое значение для программного обеспечения, поддерживающего Unicode, КНР решила обязать поддержку определенных кодовых точек [ какие? ] вне 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.

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

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

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

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

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

Поддержка [ править ]

Кодировка [ править ]

Windows 2000 может поддерживать кодировку GB18030, если установлен пакет поддержки GB18030 [12] . 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 (см. § Технические детали для примеров).

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

Глифы [ править ]

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

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

См. Также [ править ]

  • Код Гуобяо
  • CJK
  • Кодировка китайских символов
  • Сравнение кодировок Unicode

Примечания [ править ]

  1. ^ Обратите внимание, что GB18030 опускает суррогаты; см. #Mapping .
  2. ^ Знак евро является исключением, которому присвоен однобайтовый код 0x80 в более поздних версиях Microsoft CP936 / GBK и двухбайтовый код A2 E3 в GB18030.
  3. ^ Кодовые точки включают 66 несимволов Unicode.
  4. ^ ICU, похоже, ошибочно считает эту кодовую точку действительной, чего нет ни в одной из версий опубликованных стандартов. WHATWG присваивает этот байт U + 20AC (знак евро GBK) в своем универсальном декодере gb2312-gbk-gb18030.
  5. ^ Для более точного разделения этого диапазона см. GBK (кодировка символов) § Кодирование .
  6. ^ Некоторые кодовые точки кодируются двумя байтами (верхняя строка), другие - четырьмя байтами (нижняя строка). U + FFFF кодируется как84 31 A4 39на странице 239 стандарта 2005 года, хотя стандарт дает информацию84 39 FE 39о преобразовании BMP.
  7. ^ Это суррогатные кодовые точки ; они не имеют значения вне кодировки UTF-16 .
  8. ^ Кроме того, из-за того, что кодировки U + E7C7 и U + 1E3F были заменены местами, U + E7C7 кодируется в редакции стандарта 2005 года как 81 35 F4 37, между U + 1E3E (81 35 F4 36) и U + 1E40 (81 35 F4 38). Следовательно, только издание 2000 года является полностью последовательным в распределении четырехбайтовых кодов для иначе не отображаемых кодовых точек.

Ссылки [ править ]

  1. ^ Энтони Фок (2002-03-15). «Применение регистрации кодировки IANA для GB18030» . Регистрация набора символов IANA . Проверено 5 декабря 2016 .
  2. ^ а б в г CESI (2008-07-08). «GB18030 符合 性 问与答» [FAQ по соответствию GB18030]. Центр сертификации CESI . Архивировано из оригинала на 2016-09-28 . Проверено 12 октября 2016 . Страница 4 : GB 18030-2005, GB 18030-2005 -2005 规定 的 全部 汉字 字符 对应 的 编码。 [Продукт, соответствующий обязательной части GB 18030, должен иметь возможность правильно: а) вводить, выводить и обрабатывать все китайские символы, определенные в обязательном наборе; б) распознавать кодировки символов в обязательном наборе.] Альтернативный URL
  3. ^ a b c d e Управление по стандартизации Китая (SAC) (2005-11-18). GB 18030-2005: Информационные технологии - набор символов китайского кодирования .
  4. ^ «Unicode FAQ на GB 18030» . Проект ICU . Проверено 10 сентября 2016 года .
  5. ^ a b GB 18030-2000: Информационные технологии - Набор символов китайских иероглифов для обмена информацией - Расширение для базового набора . Управление по стандартизации Китая (SAC) . 2000-03-17.
  6. ^ a b Лунде, Кен (2006). «Обновление L2 / 06-394 на GB 18030: 2005» . Реестр документов Технического комитета Unicode . Проверено 28 сентября 2016 года .
  7. ^ а б Лунде, Кен. «Если gb18030 пересмотрен, рассмотрите возможность согласования стандарта кодирования · Проблема № 27 · whatwg / encoding» . GitHub . Кроме того, поддержка кодовых точек PUA в контексте шрифтов Noto CJK и Source Han совершенно не запускается, в основном потому, что они являются гарнитурами Pan-CJK, а использование PUA в таких контекстах чрезвычайно опасно. [...] Один из них. несколько дней назад мои друзья из CESI поделились со мной текстом из окончательного варианта. Это подтвердило, что требование PUA для 24 символов отменяется.
  8. ^ "Группа: GBK 外 字" . GlyphWiki . Проверено 11 сентября 2016 года .
  9. ^ a b Лунде, Кен (декабрь 2008 г.). CJKV Обработка информации . ISBN O'Reilly Media, Inc. 978-0-596-51447-1. Проверено 11 сентября 2016 года .
  10. ^ a b Таблица достоверного сопоставления между GB18030-2000 и Unicode . ICU - Международные компоненты Unicode. 2001-02-21. Проверено 4 сентября 2016 г.
  11. ^ "Стандарт кодирования # gb18030-index" . WHATWG . Проверено 24 сентября 2016 .
  12. ^ Microsoft. «Пакет поддержки GB18030» . Архивировано из оригинала на 2012-06-05.
  13. ^ Дреппер, Ульрих. "Модуль GB18030 iconv для glibc" . glibc git . Проверено 29 ноября +2016 .
  14. ^ Дреппер, Ульрих. «Обновите GB18030 до версии 2005 года» . glibc git . Проверено 29 ноября +2016 .
  15. ^ Веймер, Флориан; О'Донелл, Карлос. «Статус таблиц GB18030 (# 19575)» . Исходное ПО Bugzilla . Проверено 29 ноября +2016 .
  16. ^ "НОВОСТИ - libiconv.git - libiconv" . git.savannah.gnu.org . Проверено 13 октября 2016 .
  17. ^ VietUnicode. "/ ханном" . sourceforge.net . Проверено 13 октября 2016 .
  18. ^ "Шрифты Hanazono" . fonts.jp . Проверено 13 октября 2016 .

Внешние ссылки [ править ]

  • Регистрация кодировки IANA для GB18030
  • «Англоязычная аннотация - -2000» (PDF) . 16 февраля 2001 г. Архивировано из оригинального (PDF) 02.02.2017.
  • Введение в GB18030, включая эволюцию от GB2312 и GBK (Sun / Internet Archive)
  • Данные ICU
    • GB18030: мега-кодовая страница (IBM DeveloperWorks)
    • Авторитетная таблица сопоставления между GB18030-2000 и Unicode
    • Обозреватель конвертера ICU: GB18030
  • Диаграммы Unicode
    • Расширение A унифицированных иероглифов Unicode CJK (PDF, 1,5 МБ)
    • Расширение B унифицированных иероглифов Unicode CJK (PDF, 13 МБ)
  • GB18030 Пакет поддержки для Windows 2000 / XP, включая китайский, тибетский, йи, монгольский и тайский шрифт от Microsoft (Интернет-архив)
  • Бесплатные шрифты, редакторы и документация SIL