stringtranslate.com

ГБ 18030

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

Консорциум Unicode предупредил разработчиков, что последняя версия этого китайского стандарта, GB 18030-2022 , вводит то, что они называют «разрушительными изменениями» по сравнению с предыдущей версией GB 18030-2005, «включая 33 различных символа и 55 позиций кода». [2] GB 18030-2022 вступил в силу с 1 августа 2023 года. [3] Он был реализован в ICU 73.2; и в Java 21, [4] и перенесен в более старые версии Java 8, 11, 17 (выпуски LTS) и 20.0.2. [5]

В дополнение к методу кодирования этот стандарт содержит требования о том, какие дополнительные письменности и языки должны быть представлены, и к кому этот стандарт применим. [6] Однако этот стандарт не определяет официальные формы символов для китайских иероглифов; это стандартизировано в Списке общепринятых стандартных китайских иероглифов .

История

Набор символов GB18030 официально называется «Китайский национальный стандарт GB 18030-2005: Информационные технологии — китайский набор кодированных символов». GB — это сокращение от Guójiā Biāozhǔn (国家标准), что означает национальный стандарт на китайском языке. Стандарт был опубликован издательством China Standard Press в Пекине 8 ноября 2005 года. Только часть стандарта является обязательной. [6] С 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 меняет местами эти два назначения сопоставления. [7] : 534  В связи с обновлением Unicode , особенно появлением расширения CJK Unified Ideographs Extension B, с символами теперь связано больше кодовых точек. Также были добавлены некоторые символы, используемые этническими меньшинствами Китая , такие как монгольские иероглифы и тибетские символы (GB 16959-1997 и GB/T 20542-2006), что объясняет переименование стандарта.

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

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

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

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

Вторая версия, обозначенная как GB 18030-2005 Information Technology — Chinese coded character set, имеет тот же обязательный поднабор, что и GB 18030-2000, из 1-, 2- и 4-байтовых кодировок. [7] : 3  Эта версия также включает полное расширение CJK Unified Ideographs Extension B в разделе 4-байтовой кодировки, которое находится за пределами BMP [10] в качестве требования поддержки предложений. [14] Однако, поскольку включение расширения 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—Chinese coded character set , предписывает часть поддержки предложений CJK Unified Ideographs Extension B в GB 18030-2005, а также обновления до Unicode 11.0, включая радикалы канси и CJK Unified Ideographs URO , Extension C, D, E и F. Дополнительные языки также признаются GB 18030-2022, такие как часть арабского , тайле , нового тайлуэ , тайтхам , лису и мяо . GB 18030-2022 также вводит три уровня реализации с требованием «все продукты, использующие этот стандарт, должны реализовывать уровень реализации 1», который включает 66 новых символов BMP в 4-байтовой области кодировки, которые были добавлены между Unicode 3.1 и Unicode 11.0. Уровень реализации 2 требует поддержки Списка общепринятых стандартных китайских иероглифов , а уровень реализации 3 требует всех остальных указанных в стандарте регионов. [11]

С конца 2022 по 2023 год проекты дополнительных поправок должны быть доступны для публичного обсуждения в GB 18030-2022. Текущий проект обновляет до Unicode 15.1 символы идеографического описания , унифицированные идеограммы CJK URO, расширения A, B, C, G, H и I. [15] [16] [17] Первоначально, в конце 2022 года, он должен был поместить 897 новых синографических символов в Плоскость 10 ( шестнадцатеричная : 0A), еще не названную астральную плоскость Unicode , для сертификации настоящих имен граждан в Китае, но в конечном итоге репертуар (сокращенный до 622 символов после экспертной оценки) был ускоренно включен в Unicode 15.1 в сентябре 2023 года в качестве блока расширения I унифицированных идеограмм CJK . [18] После этого проект поправки был изменен для использования кодовых точек расширения I. [17]

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

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 × 65 536 − 2048 суррогатов) назначенных, зарезервированных и несимвольных кодовых точек Unicode .

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

U+00DE (Þ) → 81 30 89 37U+00DF (ß) → 81 30 89 38U+00E0 (а) → А8 А4U+00E1 (б) → A8 A2U+00E2 (в) → 81 30 89 39U+00E3 (г) → 81 30 8A 30

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

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

Кодирование

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

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

Шрифты

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

Microsoft YaHei и DengXian, предоставленные Microsoft, обновлены в 2023 году для соответствия уровню реализации GB 18030-2022 2, а SimSun обновлен для соответствия уровню реализации 3. [29]

Source Han Sans (и его аналог Noto Sans CJK) уже соответствуют уровню реализации GB 18030-2022 2, когда стандартное обновление для GB 18030 будет объявлено в ноябре 2022 года . Однако Source Han Serif (и его аналог Noto Serif CJK) на данный момент не соответствует, и предоставляется обновление, гарантирующее соответствие шрифта уровню реализации 2. Аналогично Microsoft YaHei и PingFang (Apple) требуют небольшого количества дополнений URO, связанных с уровнем реализации 1, чтобы соответствовать уровню реализации GB 18030-2022 2. [27]

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

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

Примечания

  1. ^ Обратите внимание, что в GB18030 отсутствуют суррогаты; см. #Mapping.
  2. ^ Знак евро является исключением, которому в более поздних версиях Microsoft CP936/GBK присвоен однобайтовый код 0x80, а в GB18030 — двухбайтовый код A2 E3.
  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 . Получено 2016-12-05 .
  2. ^ "Разрушительные изменения в GB 18030-2022" (PDF) . www.unicode.org . Получено 2024-02-12 .
  3. ^ "[JDK-8301119] Поддержка GB18030-2022 - Java Bug System". bugs.openjdk.org . Получено 2023-08-14 .
  4. ^ "Заметки о выпуске JDK 21". jdk.java.net . Получено 2023-08-14 .
  5. ^ "[JDK-8307340] Примечание к выпуску: Поддержка GB18030-2022 - Java Bug System". bugs.openjdk.org . Получено 2023-08-30 .
  6. ^ abcd CESI (08 июля 2009 г.). «GB18030 符合性问与答» [Часто задаваемые вопросы о соответствии требованиям GB18030]. Сертификационный центр CESI . Архивировано из оригинала 28 сентября 2016 г. Проверено 12 октября 2016 г. Страница 4. Руководство по эксплуатации, англ.出、处理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB [Изделие, соответствующее обязательной части GB 18030, должно быть способно правильно а) вводить, выводить и обрабатывать все китайские символы, определенные в обязательном наборе; б) распознавать кодировки символов обязательного набора.]Альтернативный URL-адрес
  7. ^ abcde Администрация по стандартизации Китая (SAC) (18.11.2005). GB 18030-2005: Информационные технологии — набор китайских кодированных символов.
  8. ^ "Часто задаваемые вопросы о Unicode в GB 18030". Проект ICU . Получено 10 сентября 2016 г.
  9. ^ ab GB 18030-2000: Информационные технологии — Набор кодированных символов китайских идеограмм для обмена информацией — Расширение для базового набора. 2000-03-17. {{cite book}}: |work=проигнорировано ( помощь )
  10. ^ abc Лунде, Кен (2006). «Обновление L2 / 06-394 для GB 18030: 2005». Реестр документов Технического комитета Unicode . Проверено 28 сентября 2016 г.
  11. ↑ abc Лунде, Кен (4 августа 2022 г.). «Стандарт GB 18030-2022». Середина . Проверено 7 августа 2022 г.
  12. ^ "Группа: GBK外字" . ГлифВики . Проверено 11 сентября 2016 г.
  13. ^ Аб Лунде, Кен (декабрь 2008 г.). Обработка информации CJKV. O'Reilly Media, Inc. ISBN 978-0-596-51447-1. Получено 11 сентября 2016 г.
  14. ^ CESI (08 июля 2009 г.). «GB18030 符合性问与答» [Часто задаваемые вопросы о соответствии требованиям GB18030]. Сертификационный центр CESI . Архивировано из оригинала 28 сентября 2016 г. Проверено 12 октября 2016 г. Страница 4. Руководство по эксплуатации, англ.出、处理GB 18030-2005强制部分规定的全部汉字字符;②产品可以正确识别GB [Изделие, соответствующее обязательной части GB 18030, должно быть способно правильно а) вводить, выводить и обрабатывать все китайские символы, определенные в обязательном наборе; б) распознавать кодировки символов обязательного набора.]
  15. ^ Лунде, д-р Кен (12.11.2023). «Первая поправка». Medium . Получено 09.09.2024 .
  16. ^ Национальный орган Китая (26 апреля 2023 г.). «GB 18030–2022《信息技术 中文编码字符集》国家标准第1号修改单(征求意见稿)» (PDF) . UTC L2/23-113.
  17. ^ ab Китайский национальный орган (13 октября 2023 г.). «Отчет о деятельности IRG №61» (PDF) . ISO/IEC JTC1/SC2 /WG2/ IRG N2623; UTC L2/23-240.
  18. ^ Национальный орган США (1 мая 2023 г.). «Комментарии USNB по проекту 2 поправки 1 к GB 18030-2022 и рекомендации по поправке 2 к ISO/IEC 10646:2020» (PDF) . ISO/IEC JTC1/SC2 N4852, WG2 N5222; UTC L2/23-115.
  19. ^ ab Официальная таблица соответствия между GB18030-2000 и Unicode. ICU – Международные компоненты для Unicode. 2001-02-21. Доступ 2016-09-04.
  20. ^ "Стандарт кодирования # gb18030-index". WHATWG . Получено 24.09.2016 .
  21. ^ Бридж, Карл (13 октября 2021 г.). "Функция MultiByteToWideChar (stringapiset.h) - приложения Win32". learn.microsoft.com . Получено 01.11.2022 .
  22. ^ Microsoft. "GB18030 Support Package". Microsoft . Архивировано из оригинала 2012-06-05.
  23. ^ Дреппер, Ульрих. "GB18030 iconv module for glibc". glibc git . Получено 29 ноября 2016 г. .
  24. ^ Дреппер, Ульрих. "Обновление GB18030 до версии 2005". glibc git . Получено 29 ноября 2016 г. .
  25. ^ Веймер, Флориан; О'Донелл, Карлос. «Состояние таблиц GB18030 (#19575)». Исходное ПО Bugzilla . Проверено 29 ноября 2016 г.
  26. ^ "НОВОСТИ - libiconv.git - libiconv". git.savannah.gnu.org . Получено 13.10.2016 .
  27. ^ abc Лунде, Кен (16 августа 2022 г.). «Стандарт GB 18030-2022». Середина . Проверено 1 ноября 2022 г.
  28. ^ Lunde, Ken. "Если gb18030 будет пересмотрен, рассмотрите возможность согласования стандарта кодировки · Issue #27 · whatwg/encoding". GitHub . Кроме того, поддержка кодовых точек PUA в контексте шрифтов Noto CJK и Source Han — это полная неудача, в основном потому, что это шрифты Pan-CJK, а использование PUA в таких контекстах крайне опасно. [...] Один из моих друзей в CESI несколько дней назад поделился со мной текстом из финального черновика. Это подтвердило, что требование PUA для 24 символов снимается.
  29. ^ "11 июля 2023 г. — KB5028171 (сборка ОС 20348.1850) — служба поддержки Microsoft". support.microsoft.com . Microsoft . Получено 25 марта 2024 г. .
  30. ^ ВьетнамЮникод. "/ханном". sourceforge.net . Проверено 13 октября 2016 г.
  31. ^ "Hanazono fonts". fonts.jp . Архивировано из оригинала 2010-04-12 . Получено 2016-10-13 .

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