stringtranslate.com

ГБ 18030

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

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

Обновленный стандарт GB18030-2022 несовместим [3] и вступил в силу 1 августа 2023 года. [4] Он был реализован ICU 73.2; и в Java 21, [5] и обратно портированы в более старые версии Java 8, 11, 17 (выпуски LTS) и 20.0.2. [6]

По состоянию на 2022 год, что касается реализации шрифтов, «только упрощенные китайские шрифты семейств шрифтов Noto Sans CJK (Google), Source Han Mono (Adobe) и Source Han Sans (Adobe) уже соответствуют стандарту GB 18030-2022 Implementation. Уровень 2 [..] Microsoft YaHei (Microsoft), Noto Serif CJK (Google), PingFang (Apple) и Source Han Serif (Adobe) — по крайней мере, версии по состоянию на ноябрь 2022 г. — требуют небольшого количества дополнений URO, которые связанный с уровнем реализации 1 , чтобы обеспечить соответствие стандарту GB 18030-2022 уровня реализации 2 ». [7]

История

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

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

По сравнению с его предшественниками, отображение GB 18030 в Unicode было изменено для 81 символа, которым предварительно был присвоен кодовый знак области частного использования Unicode (U + E000 – F8FF) в GBK 1.0 и которые позже были закодированы в Unicode. [9] Это указано в Приложении E к стандарту GB 18030. [8] : 534  [10] : 499  В стандарте GB 18030-2005 24 символа все еще отображаются в Unicode PUA. [11]

В обновлении GB 18030-2022 требования к символам, отображаемым в PUA, были полностью отменены, и все символы должны быть сопоставлены с их стандартными кодовыми точками Unicode. Из них 18 сопоставлений были обновлены путем замены позиций, аналогично тому, что произошло между GBK и GB 18030. Остальные шесть сохранили двухбайтовые сопоставления PUA, так что для следования не-PUA необходимо изменить 4-байтовую последовательность. предпочтение. [12]

В качестве национального стандарта

Первая версия GB 18030, получившая обозначение GB 18030-2000 Information Technology — китайский кодированный набор символов для обмена информацией — расширение базового набора , состоит из 1-байтовой и 2-байтовой кодировок, а также 4-байтовой кодировки для унифицированных иероглифов CJK. Расширение A соответствует расширениям Unicode 3.0. Соответствующие кодовые элементы Unicode этого подмножества, включая предварительные частные назначения, полностью лежат в BMP . Эти детали полностью обязательны в GB 18030-2000. [2] : 2  Большинство крупных компьютерных компаний уже стандартизировали некоторые версии Unicode в качестве основного формата для использования в своих двоичных форматах и ​​вызовах ОС. Однако в основном они поддерживали только кодовые точки в BMP , первоначально определенном в Unicode 1.0, который поддерживал только 65 536 кодовых точек и часто кодировался в 16 битах как UCS-2 . Этот стандарт по сути представляет собой расширение, основанное на GBK с дополнительными символами в расширении A CJK Unified Ideographs Extension.

Вторая версия получила обозначение GB 18030-2005 « Информационные технологии». Китайский кодированный набор символов имеет тот же обязательный поднабор, что и GB 18030-2000, из 1-, 2- и 4-байтовых кодировок. [8] : 3  Эта версия также включает полное расширение CJK Unified Ideographs Extension B в разделе 4-байтовой кодировки, который находится за пределами BMP [11] в качестве рекомендательного требования поддержки. [15] Однако, поскольку включение CJK Unified Ideographs Extension B в 4-байтовую область необходимо поддерживать во время обработки информации, программное обеспечение больше не может обходиться без обработки символов как 16-битных объектов фиксированной ширины ( UCS-2 ). . Следовательно, они должны либо обрабатывать данные в формате переменной ширины (как в случае с UTF-8 или UTF-16 ), что является наиболее распространенным выбором, либо перейти к более крупному формату с фиксированной шириной (т. е. UTF-32 ). Microsoft внесла изменения с UCS-2 на UTF-16 в Windows 2000. Эта версия соответствует Unicode 3.1, а также обеспечивает поддержку хангыля ( корейского ), монгольского (включая маньчжурский , ясный сценарий , сибе херген , галик ), тай-нуэа , Тибетский , уйгурский / казахский / киргизский и йи .

Третья и последняя версия, GB 18030-2022 Information Technology — набор символов с китайской кодировкой , требует поддержки предложений в части CJK Unified Ideographs Extension B в GB 18030-2005, а также обновлений до Unicode 11.0, включая Kangxi Radicals и CJK Unified Ideographs Extension. C, D, E и F. Дополнительные языки также распознаются GB 18030-2022, такие как часть арабского языка , Тай Ле , Нью Тай Лю , Тай Там , Лису и Мяо . GB 18030-2022 также вводит три уровня реализации с требованием «все продукты, использующие этот стандарт, должны реализовывать уровень реализации 1», который включает 66 новых символов BMP в 4-байтовой области кодирования, которые были добавлены между Unicode 3.1 и Unicode 11.0. Уровень реализации 2 требует поддержки Таблицы общих стандартных китайских символов , а уровень реализации 3 требует всех других указанных регионов в стандарте. [12]

Картирование

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-байтовых последовательностей, чего вполне достаточно для покрытия 1 112 064 (17 × 65536 — 2048 суррогатов) назначенных, зарезервированных и несимвольных кодовых точек Unicode .

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

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

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

Поддерживать

Кодирование

GB  18030 поддерживается в Windows с момента выпуска Windows Vista под кодовой страницей 54936. [18] Windows 2000 и XP предлагают пакет поддержки GB18030. [19] База данных 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 , библиотека кодеков символов, используемая в большинстве дистрибутивов Linux, поддерживает GB 18030-2000, начиная с 2.2, [20] и GB 18030-2005, начиная с 2.14; [21] glibc, в частности, включает в себя сопоставления без PUA для GB 18030-2005, чтобы обеспечить двустороннее преобразование. [22] GNU libiconv , альтернативная реализация iconv , часто используемая в не-glibc UNIX-подобных средах, таких как Cygwin , поддерживает GB 18030, начиная с версии 1.4. [23]

По состоянию на 2022 год «поддержка некитайских скриптов по-прежнему остается необязательной» [7] (предположительно только для поддержки отображения/шрифтов; и в Китае, поскольку кодировка является полной UTF). Известно, что стандарт поддерживает английский/ASCII, а «следующие некитайские алфавиты распознаются GB 18030-2022: арабский, тибетский, монгольский, тай ле, новый тай лю, тай там, и, лису, хангыль (корейский), и Мяо». [7]

Глифы

Пакет поддержки 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) китайской части. [2] : 4  Тем не менее, требование символов PUA в стандарте препятствовало этой реализации. [24]

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

Смотрите также

Примечания

  1. ^ Обратите внимание, что в GB18030 не используются суррогаты; см. #Картирование.
  2. ^ Знак евро является исключением: ему присвоен однобайтовый код 0x80 в более поздних версиях Microsoft CP936/GBK и двухбайтовый код A2 E3 в GB18030.
  3. ^ Кодовые точки включают 66 несимволов Юникода.
  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+ 1Э40 (81 35 Ф4 38). Следовательно, только версия 2000 года полностью последовательно распределяет четырехбайтовые коды по неотображенным кодовым точкам.

Рекомендации

  1. ^ Энтони Фок (15 марта 2002 г.). «Применение регистрации кодировки IANA для GB18030». Регистрация набора символов IANA . Проверено 5 декабря 2016 г.
  2. ^ abcd CESI (08 июля 2009 г.). «GB18030 符合性问与答» [Часто задаваемые вопросы о соответствии требованиям GB18030]. Сертификационный центр CESI . Архивировано из оригинала 28 сентября 2016 г. Проверено 12 октября 2016 г. Страница 4. Руководство по эксплуатации, GB 18030-2005. 、处理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB 18030 -2005强制性部分规定的全部汉字字符对应的编码。 [Продукт, соответствующий обязательной части GB 18030, должен быть способен правильно а) вводить, выводить и обрабатывать все китайские символы, определенные в обязательном наборе; б) распознавать кодировки символов обязательного набора.]Альтернативный URL
  3. ^ «Разрушительные изменения в Великобритании 18030-2022» (PDF) . www.unicode.org . Проверено 12 февраля 2024 г.
  4. ^ «[JDK-8301119] Поддержка GB18030-2022 — Система ошибок Java» . bugs.openjdk.org . Проверено 14 августа 2023 г.
  5. ^ «Примечания к выпуску JDK 21» . jdk.java.net . Проверено 14 августа 2023 г.
  6. ^ «[JDK-8307340] Примечание к выпуску: поддержка GB18030-2022 — система ошибок Java» . bugs.openjdk.org . Проверено 30 августа 2023 г.
  7. ^ abc Лунде, Кен (16 августа 2022 г.). «Стандарт GB 18030-2022». Середина . Проверено 1 ноября 2022 г.
  8. ^ abcde Управление стандартизации Китая (SAC) (18 ноября 2005 г.). GB 18030-2005: Информационные технологии — набор китайских кодированных символов.
  9. ^ «Часто задаваемые вопросы по Unicode для GB 18030» . Проект ОИТ . Проверено 10 сентября 2016 г.
  10. ^ ab GB 18030-2000: Информационные технологии — Набор символов, закодированных китайскими иероглифами для обмена информацией — Расширение для базового набора. 17 марта 2000 г. {{cite book}}: |work=игнорируется ( помощь )
  11. ^ abc Лунде, Кен (2006). «Обновление L2 / 06-394 для GB 18030: 2005». Реестр документов Технического комитета Unicode . Проверено 28 сентября 2016 г.
  12. ↑ abc Лунде, Кен (4 августа 2022 г.). «Стандарт GB 18030-2022». Середина . Проверено 7 августа 2022 г.
  13. ^ "Группа: GBK外字" . ГлифВики . Проверено 11 сентября 2016 г.
  14. ^ Аб Лунде, Кен (декабрь 2008 г.). Обработка информации CJKV. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. Проверено 11 сентября 2016 г.
  15. ^ CESI (08 июля 2009 г.). «GB18030 符合性问与答» [Часто задаваемые вопросы о соответствии требованиям GB18030]. Сертификационный центр CESI . Архивировано из оригинала 28 сентября 2016 г. Проверено 12 октября 2016 г. Страница 4. Руководство по эксплуатации, GB 18030-2005. 、处理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB 18030 -2005强制性部分规定的全部汉字字符对应的编码。 [Продукт, соответствующий обязательной части GB 18030, должен быть способен правильно а) вводить, выводить и обрабатывать все китайские символы, определенные в обязательном наборе; б) распознавать кодировки символов обязательного набора.]
  16. ^ ab Авторитетная таблица сопоставления между GB18030-2000 и Unicode. ICU — международные компоненты для Unicode. 21 февраля 2001 г. По состоянию на 4 сентября 2016 г.
  17. ^ «Стандарт кодирования # gb18030-index» . ЧТОРГ . Проверено 24 сентября 2016 г.
  18. Бридж, Карл (13 октября 2021 г.). «Функция MultiByteToWideChar (stringapiset.h) — приложения Win32». Learn.microsoft.com . Проверено 1 ноября 2022 г.
  19. ^ Майкрософт. «Пакет поддержки GB18030». Майкрософт . Архивировано из оригинала 5 июня 2012 г.
  20. ^ Дреппер, Ульрих. «Модуль GB18030 iconv для glibc». glibc git . Проверено 29 ноября 2016 г.
  21. ^ Дреппер, Ульрих. «Обновить GB18030 до версии 2005». glibc git . Проверено 29 ноября 2016 г.
  22. ^ Веймер, Флориан; О'Донелл, Карлос. «Состояние таблиц GB18030 (#19575)». Исходное ПО Bugzilla . Проверено 29 ноября 2016 г.
  23. ^ "НОВОСТИ - libiconv.git - libiconv" . git.savannah.gnu.org . Проверено 13 октября 2016 г.
  24. ^ Лунде, Кен. «Если gb18030 будет пересмотрен, рассмотрите возможность согласования стандарта кодирования · Проблема № 27 · Whatwg/encoding». Гитхаб . Кроме того, поддержка кодовых точек PUA в контексте шрифтов Noto CJK и Source Han совершенно бесполезна, главным образом потому, что это шрифты Pan-CJK, а использование PUA в таких контекстах чрезвычайно опасно.[...] Один из них мои друзья из CESI несколько дней назад поделились со мной текстом окончательного проекта. Это подтвердило, что требование PUA для 24 символов снимается.
  25. ^ ВьетнамЮникод. "/ханном". sourceforge.net . Проверено 13 октября 2016 г.
  26. ^ "Шрифты Ханазоно" . шрифты.jp . Проверено 13 октября 2016 г.

Внешние ссылки