stringtranslate.com

GBK (кодировка символов)

GBK — это расширение набора символов GB 2312 для упрощенных китайских иероглифов , используемых в Китайской Народной Республике . Он включает в себя все унифицированные символы CJK , найденные в GB 13000.1-93 , т. е. ISO/IEC 10646:1993 или Unicode 1.1. С момента своего первоначального выпуска в 1993 году GBK был расширен Microsoft в кодовой странице 936/1386 , которая затем была расширена до GBK 1.0 . GBK также является зарегистрированным IANA интернет-именем для сопоставления Microsoft, [1] которое отличается от других реализаций в первую очередь однобайтовым знаком евро в 0x80.

GB — это сокращение от Guójiā Biāozhǔn , что означает национальный стандарт на китайском языке, в то время как K означает расширение (扩展kuòzhǎn ). GBK не только расширил старый стандарт GB 2312 традиционными китайскими иероглифами, но и китайскими иероглифами, которые были упрощены после создания GB 2312 в 1981 году. С появлением GBK некоторые имена с иероглифами, которые ранее не представлялись, например, иероглиф 镕 ( róng ) в имени бывшего китайского премьер-министра Чжу Жунцзи , теперь представляются. [2]

По состоянию на октябрь 2022 года GBK является третьей по популярности кодировкой, обслуживаемой в Китае и на его территориях (после UTF-8 и подмножества GB 2312 ), при этом 1,9% веб-серверов обслуживают страницу, на которой указано GBK. [3] Однако все основные веб-браузеры декодируют документы с пометкой GB2312, как если бы они были помечены как GBK, за исключением Safari и Edge на этикетке GB_2312. [4] Вместе кодировки GBK и GB 2312 имеют совокупное присутствие в Китае и на его территориях в размере 5,5%. [3] Во всем мире GBK составляет менее 0,07% всех веб-страниц, а GBK+GB2312 — 0,2%. [5]

История

В 1993 году был выпущен стандарт Unicode 1.1, включающий 20 902 символа, используемых в материковом Китае , Тайване , Японии и Корее . После этого Китай выпустил GB 13000.1-93 , стандартный эквивалент Guobiao Unicode 1.1.

Набор символов GBK был определен в 1993 году как расширение GB 2312-80 , а также включал символы GB 13000.1-93 через неиспользуемые кодовые точки, доступные в GB 2312. Следовательно, GBK обратно совместим с GB 2312. GBK был определен в нормативном приложении к GB 13000.1-93. [6]

Microsoft реализовала GBK в Windows 95 и Windows NT 3.51 как кодовую страницу 936. Хотя GBK никогда не был официальным стандартом, широкое использование Windows 95 привело к тому, что GBK стал фактическим стандартом. Хотя GBK включал все китайские символы, определенные в Unicode 1.1 и GB 13000.1-93, эти стандарты использовали разные кодовые таблицы. Основной причиной его существования было простое преодоление разрыва между GB 2312-80 и GB 13000.1-93.

В 1995 году Национальный технический комитет по стандартизации информационных технологий Китая разработал Спецификацию расширения внутреннего кода Китая ( китайский :汉字内码扩展规范 (GBK) ; пиньинь : Hànzì Nèimǎ Kuòzhǎn Guīfàn (GBK) ), версии 1.0, известную как GBK 1.0 , которая является небольшим расширением кодовой страницы 936. Недавно добавленные 95 символов не были найдены в GB 13000.1-1993 и были временно назначены кодовыми точками Unicode PUA . [7] : 534 

Позже Microsoft добавила знак евро в кодовую страницу 936 и присвоила ему код 0x80. Это недопустимая кодовая точка в GBK 1.0.

В 2000 году был выпущен стандарт GB 18030-2000 , заменивший GBK 1.0, но сохранивший совместимость с ним. Он увеличил количество определений китайских иероглифов и расширил количество возможных символов за счет внедрения четырехбайтовых пробелов. Подмножество GB 18030, состоящее из однобайтовых и двухбайтовых символов, иногда также называют GBK . Сопоставление с Unicode было немного изменено, поскольку некоторые символы теперь определены в Unicode. В самой последней форме стандарта, GB 18030-2005, только 24 [8] символа по-прежнему сопоставлены с Unicode PUA (см. GB 18030#PUA .)

В 2002 году GBK был зарегистрирован как набор символов IANA; регистрация использует сопоставление кодовой страницы 936, а также псевдонимы CP936/MS936, но ссылается на спецификацию GBK 1.0. [1] Технические рекомендации W3C, опубликованные в 2015 году [ 9], определяют кодер GBK как кодер GB 18030 с однобайтовым знаком евро и без четырехбайтовых последовательностей (в то время как спецификация декодера GBK W3C не имеет таких ограничений и декодирует как GB 18030 , т. е. с тем же диапазоном букв, что и весь Unicode ).

Кодирование

Символ кодируется как 1 или 2 байта. Байт в диапазоне 007Fэто один байт, который означает то же самое, что и в ASCII . Строго говоря, в этом диапазоне 95 символов и 33 управляющих кода.

Байт с установленным старшим битом указывает, что это первый из 2 байтов. Грубо говоря, первый байт находится в диапазоне 81FE(то есть никогда 80или FF), а второй байт 40A0за исключением 7Fнекоторых областей и A1FEдля других.

Более конкретно, определены следующие диапазоны байтов:

Схема расположения

В графической форме следующий рисунок показывает пространство всех 64K возможных 2-байтовых кодов. Зеленые и желтые области назначены кодовым точкам GBK, красные — для определяемых пользователем символов. Неокрашенные области — недопустимые комбинации байтов.

Связь с другими кодировками

Области, обозначенные в предыдущем разделе как GBK/1 и GBK/2, взятые сами по себе, представляют собой просто GB 2312-80 в своей обычной кодировке, где GBK/1 является регионом, отличным от hanzi, а GBK/2 — регионом hanzi. GB 2312, или, точнее, его кодировка EUC-CN, берет пару байтов из диапазона A1FE, как и любой набор символов 94² ISO-2022, загруженный в GR. Это соответствует нижней правой четверти иллюстрации выше. Однако GB 2312 не назначает никаких кодовых точек строкам, расположенным в AAB0и F8FE, хотя он и обозначил территорию. GBK добавил расширения к этим строкам. Вы можете видеть, что два пробела были заполнены пользовательскими областями.

Что еще более важно, GBK расширил диапазон байтов. Наличие двухбайтовых символов в диапазоне ISO-2022 GR дает предел в 94²=8836 возможностей. Отказавшись от модели строгих областей ISO-2022 для графических и управляющих символов, но сохранив особенность младших байтов как однобайтовых символов и пар старших байтов, обозначающих символ, вы потенциально можете иметь 128²=16384 позиций. GBK принимает участие в этом, расширяя диапазон от A1FE(94 выбора для каждого байта) до 81FE(126 вариантов) для первого байта и 40FE(191 вариант) для второго байта, что в общей сложности составляет 24066 позиций.

Кодовая страница Microsoft 936 обычно считается GBK. [1] Однако 95 символов PUA, добавленных в GBK 1.0, не включены в кодовую страницу 936. Кодовая страница 936 также имеет однобайтовый знак евро в позиции 0x80, которого нет в GBK 1.0. [10]

Преемник GBK, GB 18030-2000 , использует оставшийся диапазон, доступный второму байту ( 3039), для дальнейшего расширения числа возможностей, сохраняя при этом GBK как подмножество.

Ссылки

  1. ^ abc "Character Sets" . Получено 3 октября 2016 г. .
  2. ^ "Кодовая страница 936 - PRC GBK (XGB)". Microsoft . Архивировано из оригинала 2002-10-01.Карта преобразования между кодовой страницей 936 и Unicode. Необходимо вручную выбрать GB 18030 или GBK в браузере для корректного просмотра.
  3. ^ ab "Распределение кодировок символов среди веб-сайтов, использующих Китай и территории". w3techs.com . Получено 2022-10-25 .
  4. ^ "Кодирование: Обобщенные результаты теста". www.w3.org . Получено 15.11.2019 .
  5. ^ "Исторические тенденции в статистике использования кодировок символов для веб-сайтов, октябрь 2022 г.". w3techs.com . Получено 25.10.2022 .
  6. ^ "18.2: Символы идеографического описания" (PDF) . Стандарт Unicode . Версия 15.0.0. 2022. стр. 763. Символы идеографического описания находятся в GBK — расширении к GB 2312-80, которое добавило все 20 902 идеограммы Unicode версии 1.1, которых еще нет в GB 2312-80. GBK определяется как нормативное приложение к GB 13000.1-93.
  7. ^ abc Администрация по стандартизации Китая (SAC) (18.11.2005). GB 18030-2005: Информационные технологии — набор китайских кодированных символов.
  8. ^ Стандарт GB 18030-2005 стр.9, 79
  9. ^ "Стандарт кодирования # gbk-encoder". W3C . Получено 2016-10-02 .
  10. ^ Шерер, Маркус (4 января 2002 г.). "Re: Fun with GBK & GB2312". Архив почтовой рассылки Unicode . Получено 4 марта 2020 г.

Примечания

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