stringtranslate.com

ГБК (кодировка символов)

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āozhgun , что на китайском языке означает национальный стандарт , а 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 , стандартный эквивалент 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 с однобайтовым знаком евро и без четырехбайтовых последовательностей (в то время как спецификация декодера W3C GBK не имеет такого ограничения, декодирует как GB 18030 , т.е. с тем же набором букв, что и весь Юникод ).

Кодирование

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

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

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

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

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

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

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

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

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

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

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

  1. ^ abc «Наборы символов» . Проверено 3 октября 2016 г.
  2. ^ «Кодовая страница 936 — КНР ГБК (XGB)» . Майкрософт . Архивировано из оригинала 1 октября 2002 г.Карта преобразования между кодовой страницей 936 и Unicode. Для правильного просмотра необходимо вручную выбрать GB 18030 или GBK в браузере.
  3. ^ ab «Распространение кодировок символов между веб-сайтами, использующими Китай и территории». w3techs.com . Проверено 25 октября 2022 г.
  4. ^ «Кодирование: обобщенные результаты испытаний» . www.w3.org . Проверено 15 ноября 2019 г.
  5. ^ «Исторические тенденции в статистике использования кодировок символов для веб-сайтов, октябрь 2022 г.» . w3techs.com . Проверено 25 октября 2022 г.
  6. ^ «18.2: Символы идеографического описания» (PDF) . Стандарт Юникод . Версия 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 ноября 2005 г.). GB 18030-2005: Информационные технологии — набор китайских кодированных символов.
  8. ^ Стандарт GB 18030-2005, стр. 9, 79.
  9. ^ «Стандарт кодирования # gbk-encoder» . W3C . Проверено 2 октября 2016 г.
  10. Шерер, Маркус (4 января 2002 г.). «Re: Развлечение с GBK и GB2312». Архив списка рассылки Unicode . Проверено 4 марта 2020 г.

Примечания

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