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

Гоцзя Бяочжун Куожан (ГБК)
GBK encoding.svg
Макет ГБК (Смотри ниже для увеличенной копии этой диаграммы)
MIME / IANAГБК
Псевдоним (а)CP936, MS936, windows-936, csGBK
Язык (и)Веб-браузеры, декодируются как ГБ 18030, поддерживающих все языки, в то время как кодирование (и другие программные декодеры) в основном используется для Упрощенный китайский, но также поддерживает Традиционный китайский, Японский, английский, русский и (частично) Греческий.
СтандартGBK 1.0
КлассификацияРасширенный ASCII,[а] кодирование с переменной шириной, Кодирование CJK
РасширяетсяEUC-CN
ПредшествуетGB2312
ПреемникГБ 18030
  1. ^ Не в самом строгом смысле этого слова, поскольку байты ASCII могут отображаться как байты следа.

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

ГБ сокращает Гоцзя Бяочжун, что значит национальный стандарт на китайском, а K означает Расширение (扩展 Kuòzhǎn). GBK не только расширил старый стандарт GB2312 традиционными китайскими иероглифами, но также и китайскими иероглифами, которые были упрощены после создания GB2312 в 1981 году. С появлением GBK некоторые имена с символами, которые ранее не представлялись, например 镕 (Róng) персонаж бывшего китайского премьера Чжу Жунцзи имя, теперь можно представить.[2]

По состоянию на июнь 2020 г., GBK - вторая по популярности китайская кодировка (после GB2312, хотя, вероятно, они декодируются как одно и то же), при этом 3,6% веб-страниц обслуживаются из Китая и территорий, декларирующих это,[3] или 0,2% всех веб-страниц в мире,[4] то есть когда они помечены как таковые, но все основные веб-браузеры декодируют документы, помеченные, например, как "ГБ 2312" или же "GB2312 "как если бы они были помечены как" gbk "(хотя не все это делают для страниц с пометкой" GB_2312 "),[5] и GBK и кодирование подмножества ГБ 2312 имеют совокупную долю в 16,7% (или 0,6% в мире).

История

В 1993 г. Unicode 1.1 был выпущен стандарт, в том числе 20902 символа, используемых в материковый Китай, Тайвань, Япония и Корея. После этого Китай выпустил GB13000.1-93, Стандарт Гобяо эквивалент Unicode 1.1.

В ГБК набор символов был определен в 1993 году как расширение GB2312 -80, а также включает символы GB13000.1-93 через неиспользуемые кодовые точки, доступные в GB2312. Следовательно, GBK обратно совместим с GB2312.

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

В 1995 году Национальный технический комитет по стандартизации информационных технологий Китая утвердил спецификацию расширения внутреннего кода Китая (Китайский : 汉字 内 码 扩展 规范 (ГБК); пиньинь : Ханзи Нейму Куджон Гуифан (GBK)), Версия 1.0, известная как GBK 1.0, который является небольшим расширением кодовой страницы 936. Недавно добавленные 95 символов не были найдены в GB 13000.1-1993, и им временно назначен Unicode PUA кодовые точки.[6]:534

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

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

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

Кодирование

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

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

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

Диапазоны кодирования GBK
классифицироватьбайт 1байт 2кодовые точкисимволы
ГБ 18030GBK 1.0Кодовая страница 936ГБ 2312
Уровень GBK / 1A1A9A1FE846718[6]:8–10717715682
Уровень GBK / 2B0F7A1FE6,7686,7636,7636,763
Уровень GBK / 381A040FE Кроме 7F6,0806,0806,080
Уровень GBK / 4AAFE40A0 Кроме 7F8,1608,1608,080
Уровень GBK / 5A8A940A0 Кроме 7F192166153
определяемый пользователем 1[6]AAAFA1FE564
определяемый пользователем 2F8FEA1FE658
определяемый пользователем 3A1A740A0 Кроме 7F672
общий:23,94021,88721,88621,7917,445

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

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

GBK encoding.svg

Отношение к другим кодировкам

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

Что еще более важно, GBK расширил диапазон байтов. Наличие двухбайтовых символов в диапазоне ISO-2022 GR дает предел 94² = 8 836 возможных. Отказавшись от модели строгих областей 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.[9]

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

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

  1. ^ а б c «Наборы символов». Получено 3 октября 2016.
  2. ^ «Кодовая страница 936 - КНР GBK (XGB)». Архивировано из оригинал на 2002-10-01. Карта конверсии между Кодовая страница 936 и Unicode. Необходимо выбрать вручную GB18030 или GBK в браузере для правильного просмотра.
  3. ^ «Распределение кодировок символов среди веб-сайтов, использующих Китай и территории». w3techs.com. Получено 2020-06-01.
  4. ^ «Исторические тенденции использования кодировок символов, июнь 2020 г.». w3techs.com. Получено 2020-06-01.
  5. ^ «Кодирование: Обобщенные результаты тестирования». www.w3.org. Получено 2019-11-15.
  6. ^ а б c Управление по стандартизации Китая (SAC) (18 ноября 2005 г.). GB 18030-2005: Информационные технологии - набор китайских кодированных символов.
  7. ^ GB 18030-2005 Стандарт стр.9, 79
  8. ^ "Стандарт кодирования # gbk-encoder". W3C. Получено 2016-10-02.
  9. ^ Шерер, Маркус (4 января 2002 г.). "Re: Развлечения с GBK и GB2312". Архив почтового списка Unicode. Получено 4 марта 2020.

Примечания

внешняя ссылка

  • Авторитетное картирование GBK ICU - часть GB18030 данные
  • Справочная страница Microsoft для GBK
  • Преобразование GBK в Unicode Примечание: это кодовая страница Microsoft 936, которая содержит записи для 21791 двухбайтовой кодовой точки, 96 однобайтовых графических символов и 33 управляющих символа. Это не совсем то же самое, что GBK, который состоит из 21886 символов.
  • Кодовая таблица GBK N.B. На этой странице с кодировкой gbk показано доступное пространство кодирования, полностью заполненное, за исключением двух мест, всего 32256 символов (32352 с подразумеваемыми однобайтовыми кодами ASCII, которые не показаны), что больше 23940 или 21886. Фактическое отображение этой таблицы зависит от декодера GBK вашего браузера.