GB/T 2312-1980 — ключевой официальный набор символов Китайской Народной Республики , используемый для символов упрощенного китайского языка . GB2312 — это зарегистрированное интернет-имя EUC-CN , которое представляет собой его обычную закодированную форму. GB относится к стандартам Гобяо (国家标准), тогда как суффикс T (推荐; tuījiàn ; «рекомендация») обозначает необязательный стандарт. [1]
GB/T 2312-1980 изначально был обязательным национальным стандартом, получившим обозначение GB 2312-1980 . Однако после выхода Национального стандартного бюллетеня Китайской Народной Республики в 2017 году GB 2312 больше не является обязательным, а его стандартный код изменен на GB/T 2312-1980 . [2] GB/T 2312-1980 был заменен GBK и GB 18030 , которые включают дополнительные символы, но GB/T 2312 по-прежнему широко используется как подмножество этих кодировок.
По состоянию на сентябрь 2022 года [обновлять]GB2312 является второй по популярности кодировкой, обслуживаемой в Китае и других регионах (после UTF-8 ), при этом 5,5% веб-серверов обслуживают страницы, объявляющие ее. [3] Во всем мире GB2312 заявлен на 0,1% всех веб-страниц. [4] Однако все основные веб-браузеры декодируют документы с пометкой GB2312, как если бы они были помечены расширенной кодировкой GBK, за исключением Safari и Edge на этикетке GB_2312
. [5]
Существует аналогичный набор символов, известный как GB/T 12345 Код китайского набора иероглифов для дополнительного набора обмена информацией , который дополняет GB/T 2312 традиционными формами символов путем замены упрощенных форм в их коде qūwèi и некоторых дополнительных 62 дополнительных символов. [6] [7] Шрифты в кодировке GB часто бывают парами: один с набором символов GB/T 2312 (упрощенный), а другой с набором символов GB/T 12345 (традиционный). Существует больше наборов дополнительных кодировок GB, дополняющих GB/T 2312, в том числе GB/T 7589 Код китайских иеограмм, набор для обмена информацией — 2-й дополнительный набор и GB/T 7590 Код китайских иеограмм, набор для обмена информацией — 4-й дополнительный набор. который предоставляет дополнительные [варианты китайских символов | варианты символов] в том же формате кодировки qūwèi (позже использованном в ISO-2022-CN), но не имеет никакого отношения к символам, закодированным в GB/T 2312.
Хотя GB/T 2312 охватывает более 99,99% использования современных китайских текстов, [8] исторические тексты и многие имена остаются за пределами рассмотрения. Старый стандарт GB 2312 включает 6763 китайских иероглифа (на двух уровнях: первый упорядочен по чтению, второй по радикалу , а затем по количеству штрихов), а также символы и знаки препинания, японскую кану , греческий и кириллический алфавиты , чжуинь и двойной символ. -байтовый набор букв пиньинь со знаками тона. В более поздней версии GB/T 2312-1980 имеется 7445 букв.
Символы в GB/T 2312 расположены в сетке 94×94 (как в ISO 2022 ), а двухбайтовая кодовая точка каждого символа выражается в форме qūwèi (区位), которая определяет строку (区; qū ). и положение символа в строке (ячейка;位; wèi ). (Эта структура такая же, как и в других национальных стандартах набора символов CJK , основанных на ISO-2022 ; сравните kuten .) Например, символ «外» (означающий: иностранный) расположен в строке 45, позиции 66, [9] таким образом его код кувэй — 45–66.
Строки (с номерами от 1 до 94) содержат следующие символы:
Строки 10–15 и 88–94 не назначены.
Для GB/T 2312-1980 он содержит 682 знака и 6763 китайских иероглифа.
EUC-CN часто используется в качестве кодировки символов (т. е. для внешнего хранилища) в программах, работающих с GB/T 2312, что обеспечивает совместимость с ASCII . Два байта используются для представления каждого символа, не найденного в ASCII . Значение первого байта находится в диапазоне 0xA1–0xF7
(161–247), а значение второго байта — в диапазоне 0xA1–0xFE
(161–254). Поскольку все эти диапазоны выходят за рамки ASCII, например UTF-8, при использовании EUC-CN можно проверить, является ли байт частью многобайтовой конструкции, но не является ли байт первым или последним.
По сравнению с UTF-8 , GB/T 2312 (как собственный, так и закодированный в EUC-CN) более эффективен для хранения: в то время как UTF-8 использует три байта [a] на каждый иероглиф CJK , GB/T 2312 использует только два. Однако GB/T 2312 не охватывает столько иероглифов, как Unicode.
Чтобы сопоставить кодовые точки qūwèi с байтами EUC, добавьте 160 ( 0xA0
) к номеру строки (или qū, 区) и номеру ячейки/столбца ( десять или wèi, 位). Результат сложения с номером строки кодовой точки сформирует старший байт, а результат сложения с номером ячейки кодовой точки сформирует младший байт.
Например, чтобы закодировать символ «外» в ячейке qūwèi 45–66, старший байт будет использовать номер строки 45: 45+160=205= 0xCD
, а младший байт будет взят из ячейки 66: 66+160= 226= 0xE2
. Итак, полная кодировка <CD E2>
. [10] [11]
ISO-2022-CN — это еще одна форма кодировки GB/T 2312, которая также является кодировкой, указанной в официальной документации. Эта кодировка ссылается на стандарт ISO-2022 , который также использует два байта для кодирования символов, отсутствующих в ASCII. Однако вместо использования расширенной области ASCII в ISO-2022 используется тот же диапазон байтов, что и в ASCII: значение первого байта находится в диапазоне 0x21–0x77
(33–119), а значение второго байта — в диапазоне 0x21–0x7E
(33–126). . Поскольку диапазон байтов значительно перекрывает ASCII, необходимы специальные символы, чтобы указать, находится ли символ в диапазоне ASCII или является частью двухбайтовой последовательности расширенной области, а именно функции Shift Out и Shift In . Это создает риск неправильного кодирования, поскольку неправильная обработка текста может привести к потере информации.
Чтобы сопоставить кодовые точки qūwèi с байтами ISO-2022, добавьте 32 ( 0x20
) к номеру строки (или qū, 区) и номеру ячейки/столбца (или wèi, 位). Результат добавления к номеру строки кодовой точки сформирует старший байт, а результат добавления к номеру ячейки кодовой точки сформирует младший байт, аналогично кодированию EUC.
Например, чтобы закодировать символ «外» в ячейке qūwèi 45–66, старший байт будет использовать номер строки 45: 45+32=77= 0x4D
, а младший байт будет взят из ячейки 66: 66+32= 98= 0x62
. Итак, полная кодировка <4D 62>
. [11]
HZ — это еще одна кодировка GB/T 2312, которая используется в основном для публикаций в Usenet ; символы представлены теми же парами байтов, что и в ISO-2022-CN, но последовательности байтов, обозначающие начало и конец диапазона текста GB 2312, различаются.
В таблицах ниже, где для префиксного байта или кодирующего байта указана пара шестнадцатеричных чисел, при кодировании через GL ( 0x 21-0x7E) используется меньшее (с неустановленным или недоступным восьмым битом), как в ISO- 2022-CN или HZ-GB-2312 , а больший (с установленным восьмым битом) используется в более типичном случае его кодирования через GR (0xA1-0xFE), как в EUC-CN , GBK или GB 18030 . Числа Цювэй даны в десятичном формате.
Когда GB/T 2312 кодируется через GR, в обоих байтах установлен восьмой бит (т. е. они больше 0x7F). GBK и GB 18030 также используют двухбайтовые коды, в которых только первый байт имеет восьмой бит, установленный для целей расширения: такие коды находятся за пределами плоскости GB/T 2312 и здесь не приводятся в таблице.
На этой диаграмме подробно описана общая компоновка основной плоскости набора символов GB/T 2312 по ведущим байтам. Для ведущих байтов, используемых для символов, отличных от hanzi , предоставляются ссылки на таблицы на этой странице, в которых перечислены символы, закодированные под этим ведущим байтом. Для ведущих байтов, используемых для ханзи, предоставляются ссылки на соответствующий раздел индекса ханзи Викисловаря .
В следующих таблицах перечислены символы, не относящиеся к ханзи , доступные в GB/T 2312, GB/T 12345 и в двухбайтовой области 1 GB 18030 (что примерно соответствует области не-ханзи в GB/T 2312). Делаются примечания там, где они отличаются, а также где GB 6345.1 и ISO-IR-165 отличаются от них. Для сравнения сделаны перекрестные ссылки на статьи о других наборах национальных символов CJK.
Сопоставления Unicode интерпункта ( китайский :间隔点; букв. «точка-разделитель») и длинного тире ( китайский :破折号) в подмножестве GBK и GB 18030 , соответствующем GB/T 2312 ( U+00B7 · MIDDLE DOT и U+ 2014 — EM DASH ) отличаются от тех, которые перечислены в GB2312.TXT ( U+30FB・KATAKANA MIDDLE DOT и U+2015 ― HORIZONTAL BAR ), который представляет собой файл данных, ранее предоставленный Консорциумом Unicode , [13] хотя он был признан устаревшим с августа 2011 года [14] и больше не размещается по состоянию на сентябрь 2016 года.
По состоянию на 2015 год Microsoft .Net Framework следует сопоставлениям GB 18030 при сопоставлении этих двух символов в данных с меткой gb2312
, тогда как ICU , [15] iconv-1.14, [16] php-5.6, ActivePerl-5.20, Java 1.7 и Python 3.4 [17] следуйте GB2312.TXT в ответ на gb2312
метку. Ruby 2.2 совместим с обеими реализациями; он внутренне преобразует конфликтующие символы в подмножество GB 18030. Техническая рекомендация W3C / WHATWG для использования с HTML5 определяет кодировку GBK, которая должна быть выведена для потоков с меткой , которая, в свою очередь, использует декодер GB18030. [18]gb2312
Другие различные сопоставления были определены и использованы отдельными поставщиками, [13] включая одно от Apple . [19]
Эта строка содержит знаки препинания, математические операторы и другие символы. В следующей таблице сначала показаны сопоставления GB 18030 [20] для этих символов GB/T 2312, а затем любые другие документированные сопоставления.
Эта строка содержит различные типы маркеров списка. Строчные формы римских цифр не были включены ни в исходный GB/T 2312 [21], ни в GB/T 12345, [6] , но включены как в кодовую страницу Windows 936 [22] , так и в GB 18030 . [20] Знак евро также был добавлен в GB 18030. [20]
Эта строка содержит ISO 646-CN (GB/T 1988-80), национальный аналог ASCII . Сравните строку 3 KS X 1001 , которая делает то же самое с версией ISO 646 для Южной Кореи , и строку 3 JIS X 0208 и KPS 9566 , которые включают только буквенно-цифровой подмножество, но в том же макете. В следующей таблице указан ISO 646-CN.
При использовании в кодировке, допускающей комбинацию с ASCII, такой как EUC-CN (и его расширенный набор GB 18030 ), эти символы обычно реализуются как символы полной ширины , поэтому используются сопоставления с блоками форм половинной и полной ширины, как показано ниже. GB 6345.1 также обрабатывает эту строку как полную ширину и добавляет формы половинной ширины (как указано выше) в качестве строки 10. [1] Apple в основном сопоставляет эту строку с кодовыми точками полной ширины, как показано ниже, но использует сопоставления не полной ширины для надстрочной линии и знака юаня , как выше. [19]
Этот набор содержит хирагану для письма на японском языке .
Сравните со строкой 4 JIS X 0208 , которой соответствует эта строка, и со строкой 10 из KS X 1001 и KPS 9566 , которые используют ту же компоновку, но в другой строке.
В этот набор входит катакана для письма на японском языке . Однако японский знак долгой гласной , который используется в тексте катаканы и включен в строку 1 JIS X 0208 , не включен в GB/T 2312, хотя он добавлен в GBK и GB 18030 за пределами основного GB/T 2312. плоскость, [24] по адресу 0xA960. [20]
Сравните со строкой 5 JIS X 0208 , которой соответствует эта строка, и со строкой 11 из KS X 1001 и KPS 9566 , которые используют ту же компоновку, но в другой строке.
Эта строка содержит базовую поддержку современного греческого алфавита без диакритических знаков и последней сигмы .
Выделенные символы представляют собой формы представления знаков препинания для вертикального письма и не включены в собственно GB/T 2312, но включены в эту строку в GB/T 12345, [ 1] [6] Кодовая страница Windows 936 , [22] Mac OS на упрощенном китайском языке, [19] и GB 18030. [20] Они рассматриваются как «стандартные расширения GB 2312». [19] И наоборот, ISO-IR-165 включает в эту строку узорчатые полуграфические символы (в основном без точных аналогов в Юникоде), что противоречит позициям кода, используемым для вертикальных расширений. [25]
Сравните со строкой 6 JIS X 0208 , которой эта строка соответствует, если не включены вертикальные формы, и со строкой 6 KPS 9566 , которая включает те же греческие буквы в той же раскладке, но добавляет римские цифры вместо вертикальных форм. Сравните строку 5 KS X 1001 , в которой греческие буквы смещены, чтобы сначала были включены римские цифры.
В этот набор входят оба корпуса по 33 буквы кириллицы , достаточные для написания современного русского алфавита и болгарского алфавита , хотя другие формы кириллицы требуют дополнительных букв. [27]
Сравните со строкой 7 JIS X 0208 , которой соответствует эта строка, а также со строкой 12 из KS X 1001 и строкой 5 из KPS 9566 , которые используют ту же компоновку, но в разных строках.
Эта строка содержит символы бопомофо и пиньинь , за исключением букв ASCII (которые находятся в строке 3). Выделенные символы — это те символы, которых нет в базовом наборе GB 2312, но добавлены GB 6345.1 , [19] , а также включены в GB/T 12345, [1] [6] Кодовая страница Windows 936 , [22] Упрощенная Mac OS Китайский [19] и GB 18030. [20] Они рассматриваются как «стандартные расширения GB 2312». [19]
GB 6345.1 рассматривает пиньинь в этой строке как полную ширину и включает аналоги половинной ширины как строку 11; [1] GB 18030 этого не делает.
GB 5007.1-85 Набор растровых шрифтов 24x24 китайских символов для обмена информацией ( китайский :信息交换用汉字 24x24 点阵字模集) — это самый ранний шаблон шрифта, основанный на GB/T 2312, в который включены исправления и расширения, в том числе:
В GB/T 2312 исправлений не было, но эти исправления включены в шаблоны шрифтов, основанные на GB/T 2312, включая GB/T 12345; его суперсеты GBK и GB 18030 также включали эти исправления. GB/T 2312 также используется в ISO-IR-165 .
{{cite book}}
: |work=
игнорируется ( помощь )комплект обеспечивает более 99,99 процентов всего использования. Тем не менее дизайнеры сочли необходимым добавить 14 276 символов «специального использования» на случай непредвиденных обстоятельств!