Макет GBK (см. Ниже для увеличенной копии этой схемы) | |
MIME / IANA | GBK |
---|---|
Псевдоним (а) | CP936, MS936, windows-936, csGBK |
Язык (и) | Веб-браузеры, декодируют как GB 18030, поддерживают все языки, в то время как кодирование (и другие программные декодеры) в основном используется для упрощенного китайского, но также поддерживает Традиционный китайский, Японский, Английский, Русский и (частично) Греческий. |
Стандартный | GBK 1.0 |
Классификация | Расширенный ASCII, кодирование переменной ширины, кодирование CJK |
Расширяет | EUC-CN |
, которому предшествует | GB2312 |
Преемник | GB 18030 |
|
GBK является расширением набора символов GB2312 для упрощенных китайских символов, используемых в Китайская Народная Республика. Он включает все унифицированные символы CJK из GB13000.1-93, то есть ISO / IEC 10646: 1993 или Unicode 1.1. С момента своего первого выпуска в 1993 году GBK был расширен Microsoft в кодовой странице 936/1386, которая затем была расширена до GBK 1.0 . GBK также является зарегистрированным IANA Интернет-именем для сопоставления Microsoft, которое отличается от других реализаций, прежде всего, однобайтовым знаком евро в 0x80.
GB означает Guojia Biaozhun, что означает национальный стандарт на китайском языке, а K означает расширение (扩展 kuòzhǎn). GBK не только расширил старый стандарт GB2312 традиционными китайскими иероглифами, но также и китайскими иероглифами, которые были упрощены после создания GB2312 в 1981 году. С появлением GBK некоторые имена с символами, которые ранее не представлялись, например, символ 镕 (róng) в имя бывшего китайского премьер-министра Чжу Жунцзи теперь можно представить.
По состоянию на июнь 2020 года GBK является второй по популярности китайской кодировкой (после GB2312, хотя, вероятно, они декодируются как единое целое и то же самое), при этом 3,6% веб-страниц обслуживаются из Китая и территорий, декларирующих это, или 0,2% всех веб-страниц в мире, то есть когда они отмечены как таковые, но все основные веб-браузеры декодируют документы, помеченные как, например, «GB 2312 » или «GB2312 », как если бы они были помечены как «gbk» (хотя не все делают это для страниц с пометкой «GB_2312»), а также GBK и подмножество кодирования GB 2312 имеют совокупную долю в 16,7% (или 0,6% в мире).
В 1993 году был выпущен стандарт Unicode 1.1, включающий 20 902 символа, используемых в материковом Китае, Тайване, Японии и Корея. После этого Китай выпустил GB13000.1-93, стандартный эквивалент Юникода Гуобяо.
Набор символов GBK был определен в 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); пиньинь : Hànzì Nèim Kuòzhǎn Guīfàn (GBK)), версия 1.0, известная как GBK 1.0, которая является небольшим расширением кодовой страницы 936. Вновь добавленные 95 символов не были найдены в GB 13000.1-1993 и были временно присвоены Кодовые точки Unicode PUA.
Позднее Microsoft добавила знак евро на кодовую страницу 936 и присвоила ему код 0x80. Это недопустимый код в GBK 1.0.
В 2000 году был выпущен стандарт GB18030 -2000, который заменил, но сохранил совместимость с GBK 1.0. Это увеличило количество определений китайских символов и расширило количество возможных символов за счет реализации четырехбайтовых пространств символов. Подмножество GB 18030, состоящее из однобайтовых и двухбайтовых символов, иногда также называют GBK . Однако отображение в Unicode было немного изменено, поскольку некоторые символы теперь определены в Unicode. В самой современной форме стандарта GB 18030-2005 только 24 символа все еще отображаются в Unicode PUA (см. GB 18030 # PUA.)
В 2002 году GBK был зарегистрирован как кодировка IANA; регистрация использует отображение кодовой страницы 936, а также псевдонимы CP936 / MS936, но ссылается на спецификацию GBK 1.0. Техническая рекомендация W3C, опубликованная в 2015 году, определяет GBK как кодировщик GB 18030 с однобайтовым знаком евро и без четырехбайтовых последовательностей (в то время как спецификация декодера W3C GBK не имеет такого ограничения, декодирует как GB 18030, т.е. тот же диапазон букв, что и во всех Unicode ).
Символ кодируется как 1 или 2 байта. Байт в диапазоне 00
–7F
- это один байт, который означает то же самое, что и в ASCII. Строго говоря, в этом диапазоне 95 символов и 33 управляющих кода.
Байт с установленным старшим битом указывает, что это первый из 2 байтов. Грубо говоря, первый байт находится в диапазоне 81
–FE
(то есть никогда не 80
или FF
), а второй байт - 40
–A0
, кроме 7F
для одних регионов и A1
–FE
для других.
Более конкретно, определены следующие диапазоны байтов:
диапазон | байт 1 | байт 2 | код точек | символов | |||
---|---|---|---|---|---|---|---|
GB 18030 | GBK 1.0 | Кодовая страница 936 | GB 2312 | ||||
Уровень | A1 –A9 | A1 –FE | 846 | 718 | 717 | 715 | 682 |
Уровень | B0 –F7 | A1 –FE | 6,768 | 6,763 | 6,763 | 6,763 | |
Уровень GBK / 3 | 81 –A0 | 40 –FE кроме 7F | 6,080 | 6,080 | 6,080 | ||
Уровень GBK / 4 | AA –FE | 40 –A0 кроме 7F | 8,160 | 8,160 | 8,080 | ||
Уровень | A8 –A9 | 40 –A0 кроме 7F | 192 | 166 | 153 | ||
определяемый пользователем 1 | AA –AF | A1 –FE | 564 | ||||
определяемый пользователем 2 | F8 –FE | A1 –FE | 658 | ||||
определяемый пользователем 3 | A1 –A7 | 40 –A0 кроме 7F | 672 | ||||
итого : | 23,940 | 21,887 | 21,886 | 21,791 | 7,445 |
В графической форме на следующем рисунке показано пространство для всех возможных 2-байтовых кодов размером 64 КБ. Зеленая и желтая области назначены кодовым точкам GBK, красная - для определяемых пользователем символов. Неокрашенные области являются недопустимыми комбинациями байтов.
Области, указанные в предыдущем разделе как GBK / 1 и GBK / 2, взятые сами по себе, представляют собой просто GB2312-80 в его обычной кодировке, GBK / 1 - это не- регион Ханзи и GBK / 2 регион Ханзи. GB2312, или, точнее, его кодировка EUC-CN, берет пару байтов из диапазона A1
–FE
, как любой набор символов 94² ISO-2022, загруженный в GR. Это соответствует нижней правой четверти иллюстрации выше. Однако GB2312 не назначает никаких кодовых точек строкам, расположенным в AA
–B0
и F8
–FE
, даже если он разбил территорию. GBK добавил расширения к этим строкам. Вы можете видеть, что два пробела были заполнены пользовательскими областями.
Что еще более важно, GBK расширил диапазон байтов. Наличие двухбайтовых символов в диапазоне ISO-2022 GR дает ограничение в 94² = 8 836 возможностей. Отказавшись от модели строгих областей ISO-2022 для графических и управляющих символов, но сохранив свойство младших байтов быть 1-байтовыми символами и пар старших байтов, обозначающих символ, вы потенциально можете иметь 128² = 16 384 позиции. GBK принимает на себя часть этого, расширяя диапазон от A1
–FE
(94 варианта для каждого байта) до 81
–FE
(126 вариантов) для первого байта и 40
–FE
(191 вариант) для второго байта, в общей сложности 24 066 позиции.
Кодовая страница Microsoft 936 обычно считается GBK. Однако 95 символов PUA, добавленные в GBK 1.0, не включены в кодовую страницу 936. Кодовая страница 936 также имеет однобайтовый знак евро в 0x80, которого нет в GBK 1.0..
Преемник GBK, GB18030 -2000, использует оставшийся диапазон, доступный для второго байта (30
–39
), для дальнейшего расширения числа возможностей, сохраняя GBK как подмножество.