stringtranslate.com

ГБ 2312

GB/T 2312-1980 — это ключевой официальный набор символов Китайской Народной Республики , используемый для упрощенных китайских иероглифов . GB2312 — это зарегистрированное интернет-имя для EUC-CN , которое является его обычной закодированной формой. GB относится к стандартам Guobiao (国家标准), тогда как суффикс 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 (区位), которая определяет строку (; ) и положение символа в строке (ячейка;; wèi ). (Эта структура такая же, как и в других национальных стандартах набора символов CJK на основе ISO-2022 ; сравните kuten .) Например, символ «外» (что означает: иностранный) расположен в строке 45, позиции 66, [9] , таким образом, его код qūwèi равен 45-66.

Строки (пронумерованные от 1 до 94) содержат следующие символы:

Строки 10–15 и 88–94 не назначены.

Для GB/T 2312-1980 он содержит 682 знака и 6763 китайских иероглифа.

Кодировки GB/T 2312

EUC-CN

EUC-CN часто используется в качестве кодировки символов (т. е. для внешнего хранилища) в программах, работающих с GB/T 2312, тем самым поддерживая совместимость с ASCII . Для представления каждого символа, не найденного в ASCII , используются два байта . Значение первого байта находится в диапазоне (161–247), а значение второго байта находится в диапазоне (161–254). Поскольку все эти диапазоны выходят за рамки ASCII, как и UTF-8, при использовании EUC-CN можно проверить, является ли байт частью многобайтовой конструкции, но не является ли байт первым или последним.0xA1–0xF70xA1–0xFE

По сравнению с 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ū, 区) и номеру ячейки/столбца ( ten или wèi, 位). Результат сложения с номером строки кодовой точки сформирует старший байт, а результат сложения с номером ячейки кодовой точки сформирует младший байт.

Например, чтобы закодировать символ "外" в ячейке qūwèi 45-66, старший байт будет использовать номер строки 45: 45+160=205= 0xCD, а младший байт будет взят из ячейки номер 66: 66+160=226= 0xE2. Таким образом, полное кодирование выглядит так <CD E2>. [10] [11]

ISO-2022-CN

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. Числа Qūwèi даны в десятичном виде .

Когда GB/T 2312 кодируется через GR, оба байта имеют установленный восьмой бит (т.е. больше 0x7F). GBK и GB 18030 также используют двухбайтовые коды, в которых только первый байт имеет установленный восьмой бит для целей расширения: такие коды находятся за пределами плоскости GB/T 2312 и здесь не табулируются.

Ведущий байт

Эта диаграмма описывает общую компоновку основной плоскости набора символов GB/T 2312 по байту свинца. Для байтов свинца, используемых для символов, отличных от hanzi , предоставляются ссылки на диаграммы на этой странице, в которых перечислены символы, закодированные под этим байтом свинца. Для байтов свинца, используемых для hanzi , предоставляются ссылки на соответствующий раздел индекса hanzi Викисловаря .

Не-ханзи ряды

В следующих таблицах перечислены символы, не являющиеся символами hanzi, доступные в GB/T 2312, GB/T 12345 и в двухбайтовой области 1 GB 18030 (которая примерно соответствует области non-hanzi GB/T 2312). Примечания сделаны там, где они отличаются, и где GB 6345.1 и ISO-IR-165 отличаются от них. Для сравнения сделаны перекрестные ссылки на статьи о других национальных наборах символов CJK.

Две реализации GB2312

Сопоставления Unicode для интерпункта ( китайский :间隔点; букв. «разделительная точка») и длинного тире ( китайский :破折号) в подмножестве GBK и GB 18030 , соответствующие GB/T 2312 ( U+00B7 · СРЕДНЯЯ ТОЧКА и U+2014КОРОТКОЕ ТИРЕ ), отличаются от тех, которые перечислены в GB2312.TXT ( U+30FBКАТАКАНА СРЕДНЯЯ ТОЧКА и U+2015ГОРИЗОНТАЛЬНАЯ ШРИФТА ), который является файлом данных, который ранее предоставлялся Консорциумом 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, которая должна быть выведена для потоков, помеченных gb2312, что в свою очередь использует декодер GB18030. [18]

Другие отличающиеся сопоставления были определены и использованы отдельными поставщиками, [13] включая одно от Apple . [19]

Набор символов 0x21/0xA1 (строка 1: знаки препинания и символы)

Эта строка содержит знаки препинания, математические операторы и другие символы. В следующей таблице сначала показаны сопоставления GB 18030 [20] для этих символов GB/T 2312, а затем любые другие задокументированные сопоставления.

Набор символов 0x22/0xA2 (строка 2: маркеры списка)

Эта строка содержит различные типы маркеров списка. Строчные формы римских цифр не были включены в исходный GB/T 2312 [21] или в GB/T 12345, [6], но включены в кодовую страницу Windows 936 [22] и GB 18030. [ 20] Знак евро также был добавлен в GB 18030. [20]

Набор символов 0x23/0xA3 (строка 3: ISO 646-CN)

Эта строка содержит 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]

Набор символов 0x24/0xA4 (строка 4: Хирагана)

В этом наборе содержится хирагана для письма на японском языке .

Сравните со строкой 4 JIS X 0208 , которой соответствует эта строка, и со строкой 10 KS X 1001 и KPS 9566 , которые используют ту же компоновку, но в другой строке.

Набор символов 0x25/0xA5 (строка 5: катакана)

Этот набор содержит катакану для записи японского языка . Однако японский знак долгой гласной , который используется в тексте катаканы и включен в строку 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 , которые используют ту же компоновку, но в другой строке.

Набор символов 0x26/0xA6 (строка 6: греческие и вертикальные расширения)

В этой строке содержится базовая поддержка современного греческого алфавита без диакритических знаков и конечной сигмы .

Выделенные символы являются формами представления знаков препинания для вертикального письма и не включены в GB/T 2312, но включены в эту строку GB/T 12345, [1] [6] кодовой страницей Windows 936 , [22] упрощенным китайским языком Mac OS, [19] и GB 18030. [20] Они рассматриваются как «стандартные расширения GB 2312». [19] Наоборот, ISO-IR-165 включает в эту строку шаблонные полуграфические символы (в основном без точных аналогов в Unicode), конфликтуя с позициями кода, используемыми для вертикальных расширений. [25]

Сравните со строкой 6 JIS X 0208 , которой соответствует эта строка, когда вертикальные формы не включены, и со строкой 6 KPS 9566 , которая включает те же греческие буквы в той же компоновке, но добавляет римские цифры вместо вертикальных форм. Сравните со строкой 5 KS X 1001 , которая смещает греческие буквы, чтобы включить римские цифры первыми.

Набор символов 0x27/0xA7 (строка 7: кириллица)

Этот набор включает в себя оба случая из 33 букв кириллического письма , достаточных для написания современного русского алфавита и болгарского алфавита , хотя другие формы кириллицы требуют дополнительных букв. [27]

Сравните со строкой 7 стандарта JIS X 0208 , которой соответствует эта строка, а также со строкой 12 стандарта KS X 1001 и строкой 5 стандарта KPS 9566 , которые используют ту же компоновку, но в разных строках.

Набор символов 0x28/0xA8 (строка 8: чжуинь и не-ASCII пиньинь)

Эта строка содержит символы бопомофо и пиньинь , за исключением букв 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 этого не делает.

Набор символов 0x29/0xA9 (строка 9: рисунок в рамке)

Ряды Ханзи

Исправления

GB 5007.1-85 Набор растровых шрифтов китайского языка 24×24 для обмена информацией ( китайский :信息交换用汉字 24x24 点阵字模集) — это самый ранний шаблон шрифта, основанный на GB/T 2312, в который включены исправления и расширения, в том числе:

В GB/T 2312 исправлений не было, но эти исправления включены в шаблоны шрифтов, основанные на GB/T 2312, включая GB/T 12345; его надмножества GBK и GB 18030 также включали эти исправления. GB/T 2312 также используется в ISO-IR-165 .

Официальный набор шрифтов

Смотрите также

Ссылки

  1. ^ abcde Lunde, Ken (2009). Обработка информации CJKV: китайская, японская, корейская и вьетнамская вычислительная техника (2-е изд.). Севастополь, Калифорния : O'Reilly . С. 94–111. ISBN 978-0-596-51447-1.
  2. ^ «2017年第7号中国国家标准公告 (Бюллетень национальных стандартов Китая, 2017 № 7)» . Управление стандартизации Китайской Народной Республики . Проверено 3 июля 2018 г.
  3. ^ "Распределение кодировок символов среди веб-сайтов, использующих Китай и территории". w3techs.com . Получено 2022-09-04 .
  4. ^ "Исторические тенденции в статистике использования кодировок символов для веб-сайтов, октябрь 2022 г.". w3techs.com . Получено 01.10.2022 .
  5. ^ "Кодирование: Обобщенные результаты теста". www.w3.org . Получено 15.11.2019 .
  6. ^ abcd Лунде, Кен (1998). «Приложение F: GB/T 12345». Обработка информации CJKV (PDF) . О'Рейли Медиа . ISBN 9781565922242.
  7. ^ GB12345-80 в таблицу Unicode. Консорциум Unicode . 1993-12-06. Архивировано из оригинала 2004-06-17.
  8. ^ Ханнас, Уильям К. (1997). Орфографическая дилемма Азии. Гавайский университет Press. п. 264. ИСБН 9780824818920. набор обеспечивает более 99,99 процентов всех случаев использования. Тем не менее, дизайнеры сочли необходимым добавить 14 276 символов «специального использования» для покрытия непредвиденных обстоятельств!
  9. ^ "GB 2312-1980: Информационные технологии — Набор кодированных символов китайской идеограммы для обмена информацией (базовый набор)". Май 1981 г.
  10. ^ "Unicode to GB2312 or GBK table". cs.nyu.edu . Архивировано из оригинала 3 марта 2016 года . Получено 11 января 2022 года .
  11. ^ Аб Лунде, Кен Роджер (декабрь 2008 г.). Обработка информации CJKV (2-е изд.). О'Рейли . ISBN 978-0-596-51447-1.
  12. ^ "GB 2312-1980: Информационные технологии — Набор кодированных символов китайской идеограммы для обмена информацией (базовый набор)". Май 1981 г. Получено 2 октября 2016 г.
  13. ^ ab Haible, Bruno. "GB2312 (Таблицы преобразования)" . Получено 29 сентября 2016 г.
  14. ^ "Readme – MAPPINGS/OBSOLETE/EASTASIA". 9 августа 2001 г. Получено 29 сентября 2016 г.
  15. ^ "java-EUC_CN-1.3_P.ucm" . Получено 29 сентября 2016 г. .[ постоянная мертвая ссылка ]
  16. ^ "libiconv:lib/gb2312.h". GNU Savannah . Получено 29 сентября 2016 г. .
  17. ^ "Проблема 24036". Python Bug Tracker .
  18. ^ "Кодирование § Имена и метки". W3C . Получено 29 сентября 2016 г. .
  19. ^ abcdefghij "Преобразование (внешняя версия) из китайской упрощенной кодировки Mac OS в Unicode 3.0 и более поздние версии". Apple, Inc.
  20. ^ abcdefghij Администрация по стандартизации Китая (SAC) (18.11.2005). GB 18030-2005: Информационные технологии — набор китайских кодированных символов.
  21. ^ Китайская ассоциация по стандартизации . Набор китайских графических кодированных символов для обмена информацией (PDF) . ITSCJ/ IPSJ . ISO-IR -58.
  22. ^ abcdef Microsoft . "КОДОВАЯ СТРАНИЦА 936: PRC GBK (XGB) - ANSI, OEM". Консорциум Unicode .
  23. ^ ab Viswanadha, Raghuram (2000-08-30). "Таблица Unicode to ISO-IR-165". Международные компоненты для Unicode . IBM .
  24. ^ Лунде, Кен (2009). «По-видимому, отсутствующие символы». Обработка информации CJKV: китайская, японская, корейская и вьетнамская вычислительная техника (2-е изд.). Севастополь, Калифорния : O'Reilly . стр. 180. ISBN 978-0-596-51447-1.
  25. ^ ab CCITT (1992-07-13). Коды китайского набора графических символов для связи (PDF) . ITSCJ/ IPSJ . ISO-IR -165.
  26. Лунде, доктор Кен (4 августа 2022 г.). «Стандарт GB 18030-2022». Середина . Проверено 7 августа 2022 г.
  27. ^ Чиборра, Роман (1998-11-30) [1998-05-25]. "The Cyrillic Charset Soup". Архивировано из оригинала 2016-12-03 . Получено 2016-12-03 .
  28. ^ «Политики стабильности кодировки символов Unicode». Консорциум Unicode. 2017-06-23.
  29. ^ ab [1] [ постоянная мертвая ссылка ]

Примечания

  1. ^ Только для идеограмм, охватываемых GB/T 2312, все из которых попадают в Unicode BMP
  2. ^ ab Как совместимый с ISO 2022 набор 94 n -символов, простой пробел и символ удаления доступны в виде однобайтовых кодов 0x20 и 0x7F (а не 0xA0 и 0xFF) соответственно.
  3. ^ Используется для U+FF47 большинством реализаций на основе GB 6345.1 , включая реализацию Apple и GB 18030 (которые используют 8-32 для U+0261), [20] но для U+0261 — ISO-IR-165 . [23]
  4. ^ abcdefghij Эти символы из блока Vertical Forms . Некоторые используемые отображения были разработаны, когда единственными вертикальными формами представления, которые существовали в Unicode, были формы из блока CJK Compatibility Forms . В частности, они отображаются Windows-936 и ранее GB 18030 в Private Use Area , но с определенным глифом, [22] [20] а Apple — в обычный полноширинный символ с добавленным символом Private Use U+F87E в качестве маркера вариации. [19] В обновлении GB 18030-2022 эти отображения Private Use Area были устранены и теперь отображаются в их стандартных кодовых точках Unicode. [26]
  5. ^ Сопоставлено с зоной частного пользования U+E7C7 первым (2000) изданием GB 18030 , а также Windows-936; [22] это было изменено изданием GB 18030 2005 года. [20]
  6. ^ Этот составной символ был добавлен в Unicode 3.0. До этого этот символ был сопоставлен с его составной последовательностью (т. е. U+006E+0300 ) компанией Apple. [19] Это изменение предшествовало стабилизации форм нормализации Unicode , которая была введена в Unicode 3.1. [28] Он сопоставлен с областью частного использования U+E7C8 в Windows-936. [22]
  7. ^ Сопоставлено с U+0261 в GB 18030 [20] и большинством других реализаций, основанных на GB 6345.1 [19] (которые используют 3-71 для U+FF47), но с U+FF47 в ISO-IR-165. [23] [25]
  1. ^ ɑ (U+0251)
    ḿ (U+1E3F; Представлено в Unicode 3.0, поэтому кодовая страница 936 не включала этот символ [29] )
    ń (U+0144)
    ň (U+0148)
    ǹ (U+01F9; Представлено в Unicode 3.0, поэтому кодовая страница 936 не включала этот символ [29] )
    ɡ (U+0261)

Дальнейшее чтение

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