Кодовая страница 949 (IBM)

Кодовая страница IBM 949
Макет кодовой страницы IBM-949
Псевдоним(ы)
  • IBM-949, x-IBM949
  • На основе ASCII : IBM-949C, x-IBM949C, cp949c
  • Неоднозначно с UHC : 949, cp949
Язык(и)корейский
СозданоИБМ
КлассификацияРасширенный ISO 646 , кодирование переменной ширины , кодирование CJK
РасширяетEUC-КР
ПредшествовалКод страницы 944

Кодовая страница IBM 949 (IBM-949) — это кодировка символов , которая использовалась IBM для представления текста на корейском языке на компьютерах. Это кодировка переменной ширины , которая представляет символы из кода Wansung, определенного южнокорейским стандартом KS X 1001 в формате, совместимом с EUC-KR , но добавляет расширения IBM для дополнительных ханджа , дополнительных предварительно составленных слогов хангыля и определяемых пользователем символов .

При задании значений в шестнадцатеричном формате байты с 0x00 по 0x7F используются для однобайтовых символов KS X 1003 ( ISO 646 :KR), аналогичный набор для ASCII, но со знаком won вместо обратной косой черты. Байты с 0x80 по 0x84 используются для однобайтовых символов расширения IBM. Старшие байты с 0x8F по 0xA0 используются для двухбайтовых символов расширения IBM. Старшие байты с 0xA1 по 0xFE используются для кода Wansung ( символы KS X 1001 в форме EUC-KR, двухбайтовые), но с некоторым неиспользуемым пространством, открытым для определяемого пользователем использования.

Хотя обе иногда называются "cp949", IBM-949 отличается от кодовой страницы Windows 949 (IBM-1363), которая является унифицированным кодом Хангыль от Microsoft, другим расширением EUC-KR. Его также не следует путать с реализацией IBM простого EUC-KR ( IBM-970 ). Кодовая страница 949 в OS/2 — это кодовая страница IBM; однако существует сторонний патч для изменения этого. [1]

Терминология и кодирование маркировки

IBM-949 и Unified Hangul Code (Windows-949) известны как «кодовая страница 949» (или «cp949»), хотя они разделяют только подмножество EUC-KR. Ни один из них не имеет стандартизированной зарегистрированной в IANA метки для идентификации. Хотя UHC включен в стандарт кодирования WHATWG [2] с метками, включающими «windows-949», [3] IBM-949 не включен. Поэтому IBM-949 не разрешен в HTML5 .

Хотя значение метки "ibm-949" (и наоборот "windows-949" и "ms949") однозначно там, где эти метки поддерживаются, интерпретация меток кодировки "949" и "cp949" соответственно различается между реализациями. Например, International Components for Unicode использует "cp949", "949", "ibm-949" и "x-IBM949" для обозначения IBM-949, [4] и дополнительно метки "cp949c", "ibm-949c" и "x-IBM949C" для обозначения варианта, который использует немодифицированные отображения ASCII для 0x20–7E (что приводит к дублированию отображений для обратной косой черты), [5] в то время как (из меток, включающих номер кодовой страницы 949) только "ms949" и "windows-949" назначены для UHC. [6] Это отличается от Python , который распознает как «cp949», так и «949» (в дополнение к более явным «ms949» и «uhc», но не «windows-949») как метки для UHC и не включает кодек IBM-949. [7] Кодовая страница 949, используемая корейскими версиями OS/2 , является кодовой страницей IBM; для добавления поддержки всего набора корейских слогов Unicode существует сторонний патч, заменяющий ее кодовой страницей Microsoft. [1]

IBM-949 — это кодировка переменной ширины , определяемая как комбинация двух кодовых страниц фиксированной ширины : однобайтовой кодовой страницы 1088 и двухбайтовой кодовой страницы 951. [ 8] [9] [10]

История

Версия кодовой страницы 951 (DBCS-PC, т. е. двухбайтовый не- EUC не- EBCDIC код), двухбайтовый компонент для IBM-949, определена в пересмотренной версии IBM Corporate Specification CH 3-3220-125 от сентября 1992 года, вместе с кодовой страницей 834 (DBCS-Host, т. е. двухбайтовый EBCDIC код), которая является двухбайтовым компонентом кодовой страницы 933. [ 11] Эта версия кодовой страницы 949/951 считала весь диапазон ведущих байтов 0x8F–A0 определяемой пользователем областью и включала только стандартные назначения Wansung и определяемые пользователем области, таким образом не включая некоторые символы, которые включала кодовая страница 933/834. [11] Некоторые более поздние версии, такие как реализованная International Components for Unicode (ICU), сжимают определяемую пользователем область, чтобы включить эти символы в качестве расширений. [12]

Кодовые страницы IBM 934 и 944
Язык(и)корейский
РасширяетN-байтовый код хангыль
Преобразует/КодируетКод страницы 933
ПреемникКодовая страница IBM 949

Более ранняя редакция CH 3-3220-125 от октября 1989 года вместо этого определила кодовую страницу 926 как свой код DBCS-PC, который кодировал те же символы, что и IBM-834, в макете, отличающемся от IBM-951 и IBM-834, которые имели другой диапазон ведущих байтов и не были расширением EUC-KR. [11] IBM-926 был объединен с кодовой страницей 891 или кодовой страницей 1040 (соответственно 8-битный N-байтовый код хангыль и его расширение; сравните, как Shift JIS расширяет 8-битный JIS X 0201 ), чтобы сформировать IBM-934 или IBM-944 соответственно. [13] [14]

Кодовые страницы 944/926 теперь устарели в пользу IBM-949. Пересмотр 1992 года определяет кодовую страницу 926 как «ограниченную» («ограниченную конкретной средой, для которой [она] зарегистрирована») и не приводит ее диаграмму или сопоставления с другими кодовыми страницами, [11] а CCSID 944 классифицируется как «сосуществование и миграция» [14] (в отличие от «совместимого» для CCSID 949). [8] Международные компоненты для Unicode включают сопоставления Unicode для IBM-949 [4] [12] и IBM-933, но его сопоставление IBM-944 было удалено в 2001 году. [15]

Однобайтовые коды

Кодовая страница IBM 949 (однобайтовый компонент: 1088) [16] [17] [4] [5] [12]
0123456789АБСДЭФ
0xНУЛЕВОЙ
1x
2x СП !"#$%&'()*+,-./
3x0123456789:;<=>?
4x@АБСДЭФГЧАСяДж.КЛМНО
5xПВРСТУВВтХИЗ[]^_
6x`абсгефгчасяджклмно
7xпдгсттывжхуз{|}~
8x¢¬\¦
9x90919293949596979899
ТопорА01-_2-_3-_4-_5-_6-_7-_8-_9-_10-_11-_12-_13-_14-_15-_
Вх16-_17-_18-_19-_20-_21-_22-_23-_24-_25-_26-_27-_28-_29-_30-_31-_
Сх32-_33-_34-_35-_36-_37-_38-_39-_40-_41-_42-_43-_44-_45-_46-_47-_
Дкс48-_49-_50-_51-_52-_53-_54-_55-_56-_57-_58-_59-_60-_61-_62-_63-_
Бывший64-_65-_66-_67-_68-_69-_70-_71-_72-_73-_74-_75-_76-_77-_78-_79-_
Фх80-_81-_82-_83-_84-_85-_86-_87-_88-_89-_90-_91-_92-_93-_94-_
  Отличия от кодовой страницы 437 (для 0x00–7F) или EUC-KR (для 0x80–FF)

Двухбайтовые коды

Старшие байты 0x8F–99, 0xC9, 0xFE (диапазоны, определяемые пользователем)

IBM-949 разработан для поддержки максимум 1880 UDC (пользовательских символов), [8] включая пользовательские строки (ведущие байты 0xC9 и 0xFE) плоскости Wansung и диапазоны за пределами плоскости Wansung. В этой версии ведущие байты 0x8F–A0 содержат максимум 1692 UDC, а ведущие байты 0xC9 и 0xFE содержат максимум 94 каждый (т. е. с байтами хвоста 0xA1–FE). [11] Однако, когда реализованы расширения для поддержки всего двухбайтового репертуара IBM-933 , они используют ведущие байты 0x9A–A0, что приводит к меньшему максимальному количеству символов, оставшихся для определения пользователем. [4] [12]

При сопоставлении с Unicode, 0xC9A1–C9FE (между диапазонами слога и ханджа) сопоставлены с кодовыми точками Unicode Private Use Area U+E000–E05D, в то время как 0xFEA1–FEFE (между концом диапазона ханджа и концом плоскости) сопоставлены с U+E05E–E0BB. За пределами плоскости Wansung, 0x8FA0–9AA5 (где второй байт находится в диапазоне 0xA1–FE) сопоставлены с кодовыми точками Private Use Area U+E0BC–E4CA. [4] Последний из этих диапазонов врезается в начало строки 0x9A (показано ниже).

В совокупности эти диапазоны частного использования охватывают кодовые точки U+E000–E4CA, позволяя преобразовывать 1227 UDC из IBM-949 в Unicode. [12] Отдельный диапазон областей частного использования U+F843–F86E используется IBM для преобразования некоторых символов в расширенном диапазоне ханджа. [12] Это следует ранним рекомендациям Консорциума Unicode о том, что корпоративные символы должны быть выделены от U+F8FF вниз, а определяемые пользователем символы должны быть выделены от U+E000 вверх, [18] и является частью более крупной схемы областей корпоративного частного использования, которая определяется внутри IBM и использует диапазон U+F83D–F8FF. [19] [20]

Старшие байты 0x9A–9D (расширенные символы и ханджа)

Согласно спецификации 1992 года, весь этот диапазон определяется пользователем. [11] Однако, как реализовано в кодеке, предоставленном IBM для ICU, 0x9AA1 по 0x9AA5 являются концом диапазона, определяемого пользователем. Остальная часть этого диапазона включает некоторые символы, не являющиеся хангыль, включенные в кодовую страницу 933 , но не в код Wansung. 0x9AA6 по 0x9AAB содержат различные технические или математические символы. Остальная часть содержит ханджа в дополнение к тем, которые включены в KS X 1001 , хотя некоторые из них сопоставлены IBM с областью частного использования. [12]

Кодовая страница IBM 949 (расширенные символы и ханджа) [12] [22]
0123456789АБСДЭФ
9AAxǂ [а]Кʺ
9ABx
9ACx
9ADxда
9АЕхИДая
9AFxдаДаРусский
9BAx祿窿
9BBxРусский
9BCx
9BDxРусский
9BEx巿
9BFxДадаЯ
9CAx婿Яда
9CBx宿Я
9CCxяЯ
9CDxдаПеревод
9CEx
9CFxДаЯя
9DAx
9DBxДаЯ
9DCxдаДа[б]Я
9DDxДа
9DEx
9DFxДаДаДа

Ведущие байты 0x9E–A0 (расширенные слоги ханджа и хангыль)

Согласно спецификации 1992 года, весь этот диапазон определяется пользователем. [11] Как реализовано в кодеке, предоставленном IBM для ICU, 0x9EA1 по 0x9EAC содержат остаток расширенного ханджа. Остальная часть диапазона содержит несколько дополнительных слогов хангыль , которые недоступны в предварительно составленной форме в чистом EUC-KR . В отличие от Unified Hangul Code, этого недостаточно для поддержки всех нечастичных слогов Johab, отсутствующих в коде Wansung. [12]

Среди них наиболее значимыми являются 뢔 (0x9EFC), 쌰 (0x9FE6), 쎼 (0x9FED), 쓔 (0x9FF3) и 쬬 (0xA0C1), которые соответствуют началу стандартных символов Wansung 뢨, 썅, 쏀, 쓩 и 쭁 соответственно, когда они частично введены в редакторе метода ввода .

Кодовая страница IBM 949 (расширенные слоги ханджа и хангыль) [12]
0123456789АБСДЭФ
9EAx
9EBx
9ECx꾿
9EDxДаДаДаДаДаДа
9EExДаДаДаДа
9EFxДаДаДаДа
9ФАксДаДаДа
9FBxДаДаДаДаДа
9FCxДа뻿Да
9FDxДаДадаДадаДаЯДаДаДа
9FExдаДаДадаДаДаДаДаДаДаДаДаДа
9FFxдаДададаДадаДаДаДаДадададаДа
А0АксДаДаДаДаДаДадаДадаДада
А0БхДаДаЯдаДадаДадаДа
А0СхДаДаДаДаДада
А0ДхдаДаДадаДададададада
А0Ех
А0Фх

Старшие байты 0xA1–C8, 0xCA–FD (стандарт Wansung)

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

Сноски

  1. ^ Это не включено для поддержки IPA. Вместо этого в кодовой странице 933 SO 0x4160 — это знак не-равно, отображаемый с косой чертой, в то время как IBM-933 SO 0x418D — это знак, отображаемый с обратной косой чертой (т. е. =⃥). [11] Хотя это IBM-933 SO 0x4160, который отображается в обычный символ не-равно GCGID SA540080 ( полная ширина SA540000), это IBM-933 SO 0x418D, который отображается в EUC-KR и IBM-949 0xA1C1, [11] из-за справочного глифа для знака не-равно в KS C 5601-1987, также отображаемого с обратной косой чертой. [23] Следовательно, U+2260, который отображается в EUC-KR и, следовательно, IBM-949 0xA1C1, отображается в IBM-933 SO 0x418D, оставляя IBM-933 SO 0x4160 (и, следовательно, IBM-949 0x9AA6) для отображения на визуально похожий символ в U+01C2. [24]
  2. ^ Сопоставление от IBM — U+5231 刱, но глиф в документе IBM CH 3-3220-125 1992-09 ближе к U+5259 剙 (код хоста 62D5). [11]

Ссылки

  1. ^ ab Borgendale, Ken. «Кодовая страница OS/2 и средства отображения клавиатуры».
  2. ^ ван Кестерен, Энн , «5. Индексы (§ index EUC-KR)», Стандарт кодирования , WHATWG. Соответствует стандарту KS X 1001 и унифицированному коду хангыль, более известному вместе как кодовая страница Windows 949.
  3. ^ ван Кестерен, Энн . «4.2. Названия и метки». Стандарт кодирования . ЧТОРГ.
  4. ^ abcde "Converter Explorer: ibm-949_P110-1999 (псевдоним x-IBM949)", Международные компоненты для Unicode , Консорциум Unicode
  5. ^ ab "Converter Explorer: ibm-949_P11A-1999 (псевдоним x-IBM949C)", Международные компоненты для Unicode , Консорциум Unicode. Это версия IBM-949 на базе ASCII.
  6. ^ "windows-949-2000", Converter Explorer , Международные компоненты для Unicode
  7. ^ "кодеки — Реестр кодеков и базовые классы § Стандартные кодировки". Документация Python 3.7.2 . Python Software Foundation.
  8. ^ abc "Идентификаторы кодированных наборов символов: CCSID 949". IBM Globalization . IBM . Архивировано из оригинала 2014-11-29.
  9. ^ "Информационный документ CCSID 1088". Архивировано из оригинала 2016-03-26.
  10. ^ "Информационный документ о кодовой странице 951". Архивировано из оригинала 2017-01-16.
  11. ^ abcdefghijk "Набор графических символов корейского языка IBM: DBCS-Host и DBCS-PC" (PDF) . IBM . 2001 [1992]. CH 3-3220-125 1992-09.
  12. ^ abcdefghij Международные компоненты для Unicode (ICU), ibm-949_P110-1999.ucm, 2002-12-03
  13. ^ "Идентификаторы кодированных наборов символов: CCSID 934". IBM Globalization . IBM . Архивировано из оригинала 2014-12-02.
  14. ^ ab "Идентификаторы кодированных наборов символов: CCSID 944". IBM Globalization . IBM . Архивировано из оригинала 2014-12-01.
  15. ^ Вишванадха, Рам (2001-11-01). "ICU-1281 Удалить нежелательные ucmfiles". Международные компоненты для Unicode .
  16. ^ Кодовая страница CPGID 01088 (pdf) (PDF) , IBM
  17. ^ Кодовая страница CPGID 01088 (txt), IBM
  18. ^ "2.0: Изменения в Unicode 1.0" (PDF) . Стандарт Unicode, версия 1.1 . Консорциум Unicode . стр.  3– 4. UTR #4.
  19. ^ ab "CPGID 01449: IBM default PUA". IBM Globalization: Code page identifiers . IBM . Архивировано из оригинала 2015-09-16. IBM выделила 195 позиций от U+F83D до U+F8FF для использования в качестве IBM Corporate-zone и намерена использовать их последовательно в IBM всякий раз, когда возникает необходимость в сохранении целостности символов IBM при передаче.
  20. ^ IBM (1997). unicode.nam: позволяет указывать символы Unicode с использованием имен, подобных IBM или PostScript .(Входит в комплект Borgendale, Ken, OS/2 Codepage и Keyboard Display Tools))
  21. ^ "ibm-933_P110-1995.ucm". Международные компоненты для Unicode .
  22. ^ Отображенные ханджа для Private Use Area определяются из кодовых таблиц. Документ IBM CH 3-3220-125 1992-09 дает кодовые таблицы для кодовых страниц, используемых в качестве двухбайтовых компонентов для Code page 933 и более старой версии Code page 949 без этих расширений; однако, ханджа в этом разделе соответствуют (и находятся в том же порядке) подмножеству таблицы 7, для которого "PC Code" не указан. [11] Отображения Corporate Private Use Area также координируются с другими кодовыми страницами, [19] включая Code page 933, [21] которая может использоваться для получения "Host Code" для заданного отображения Corporate Private Use Area.
  23. ^ Корейское бюро стандартов (1988-10-01). Корейский набор графических символов для обмена информацией (PDF) . ITSCJ/ IPSJ . ISO-IR -149.
  24. ^ "ibm-933_P110-1995 (ведущие байты 0E41)". Converter Explorer . Международные компоненты для Unicode .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Code_page_949_(IBM)&oldid=1212868459#History"