Кодовая страница 932 (Microsoft Windows)
МИМ / IANA | Windows-31J |
---|---|
Псевдоним(а) | CP943C |
Язык(и) | японский |
Стандартный | Стандарт кодирования WHATWG (как «Shift_JIS») [1] |
Классификация | Расширенный ASCII , [а] кодировка переменной ширины , кодировка CJK |
Расширяет | Shift_HE |
| |
Кодовая страница Microsoft Windows 932 (сокращенно MS932 , [2] [3] Windows-932 [3] или неоднозначно CP932 [4] ), также называемая Windows-31J среди других названий (см. § Терминологию ниже), представляет собой Microsoft Windows кодовую страницу для японского языка , которая представляет собой расширенный вариант Shift JIS японской кодировки символов . Он содержит стандартные 7-битные коды ASCII , а японские символы обозначаются старшим битом первого байта, равным 1. Для некоторых кодовых точек на этой странице требуется второй байт, поэтому для кодирования символов используются либо 8, либо 16 бит.
IBM предлагает те же расширенные двухбайтовые коды в своей кодовой странице 943 ( IBM-943 или CP943 ), [5] который представляет собой комбинацию однобайтовой кодовой страницы 897 и двухбайтовой кодовой страницы 941 . [6]
Windows-31J — наиболее часто используемая японская кодировка, отличная от UTF-8 /Unicode, в Интернете. Однако многие люди и пакеты программного обеспечения, включая библиотеки Microsoft, [7] объявите кодировку Shift JIS для данных Windows-31J, хотя она включает в себя некоторые дополнительные символы, а некоторые из существующих символов по-другому отображаются в Unicode . Это привело к тому, что стандарт HTML WHATWG стал обрабатывать метки кодировки. shift_jis
и windows-31j
взаимозаменяемы и используют вариант Windows для кодера и декодера «Shift_JIS». [1]
Терминология [ править ]
Вариант Microsoft Shift JIS известен просто как «Кодовая страница 932» в Microsoft Windows, однако это неоднозначно, поскольку кодовая страница IBM 932 , а также вариант Shift JIS, не имеет двухбайтовых расширений поставщика NEC и выбранных NEC, которые присутствуют в Вариант Microsoft (хотя оба включают расширения IBM) сохраняет порядок JIS X 0208 1978 года. [5]
Кодовая страница IBM 943 (или «IBM-943») включает в себя те же двухбайтовые коды, что и кодовая страница Windows 932. [5] Версия Microsoft близко соответствует кодировке, называемой ibm-943_P15A-2003 (с псевдонимами, включая CP943C и Windows-932 ). [3] в области международных компонентов для Unicode (ICU). Существует также вторая кодировка ICU под названием ibm-943_P130-1999 . [8] который использует различные однобайтовые сопоставления, которые более точно соответствуют определениям кодовых страниц IBM. (Подробнее см . § Различия в однобайтовых символах ниже.)
Кодовая страница Windows 932 зарегистрирована в IANA как Windows-31J . [9] Метка «Windows-31J» принадлежит IANA и не распознается Microsoft, которая исторически использовала вместо нее «shift_jis». [7] Стандарт кодирования W3C / WHATWG , используемый HTML5, рассматривает метку « shift_jis » как взаимозаменяемую с «windows-31j» с целью обеспечения «совместимости с развернутым контентом». [10] и соответствует кодовой странице Windows 932 [1] (включая «ранее проприетарные расширения IBM и NEC»). [11]
Кодовая страница Windows 932 также называется MS_Kanji . [3] [12] хотя IANA рассматривает MS_Kanji как псевдоним стандартного Shift JIS. [9] Python , например, использует метку MS-Kanji
(или cp932
) для Windows-932 и метка Shift_JIS
(или sjis
) для JIS X 0208, определенного Shift JIS, без распознавания Windows-31J
этикетка. [12]
В японских выпусках Windows эта кодовая страница называется «ANSI» , поскольку это 8-битная кодировка операционной системы по умолчанию, хотя ANSI не участвовал в ее определении.
Отличия от стандартного Shift JIS [ править ]
Windows-31J часто путают со стандартным Shift JIS (как определено в JIS X 0208 :1997, Приложение 1): несмотря на схожесть, это различие важно для программистов, желающих избежать mojibake .
Различия в двухбайтовых символах [ править ]
В дополнение к стандартным символам JIS X 0201 : 1997 и JIS X 0208 : 1997, Windows-31J включает несколько расширений JIS X 0208, а именно: « специальные символы NEC (строка 13), выбор расширений IBM NEC (строки с 89 по 92), и расширения IBM (строки с 115 по 119)", [9] в дополнение к выделению некоторого пространства для кодирования для определения конечного пользователя . [13] Это также отличается от IBM-932 , который не включает расширения NEC или выбор NEC. [5]
Расширения IBM были разработаны для кодирования символов из японского репертуара IBM DBCS-Host , который изначально отсутствовал в JIS X 0208; Знак «потому что» ∵ и знак «не» ¬ были позже добавлены в сам JIS X 0208 в 1983 году, и Microsoft включает их в местоположения расширений, а также в их местоположения 1983 года. [14] Расширения NEC также кодируют весь репертуар IBM, но в отдельном расширении в сетке 94×94 JIS X 0208 (в строках 89–92, помимо символов, уже включенных в строку 13 NEC ), вместо использования кодов Shift JIS. за пределами диапазона JIS X 0208; Кодовая страница Windows 932 включает эти 388 символов в обоих местах. [14] В результате знаки «потому что» и «не» кодируются трижды.
Некоторые из этих представлений впоследствии использовались для разных символов в JIS X 0213 и Shift JIS-2004 . Например, сравните строку 89 в JIS X 0213 (начинающаяся с 硃, 硎, 硏…). [15] до строки 89, используемой в JIS X 0208 с расширениями IBM/NEC (начинается с 纊, 褜, 鍈…). [16] Следовательно, Shift JIS-2004 несовместим с Windows-31J.
В дополнение к вышесказанному Microsoft использует другое (но визуально похожее) сопоставление Unicode для нескольких двухбайтовых знаков пунктуации по сравнению со стандартным Shift JIS, например, волновое тире отображается на U + FF5E, а не на U + 301C, [17] за которым следует IBM-943_P15A-2003 [18] но не IBM-943_P130-1999, [19] и использование другого сопоставления для двухбайтовой обратной косой черты. [17]
Различия в однобайтовых символах [ править ]
Windows-932 включает стандартные 7-битные сопоставления ASCII для однобайтовых последовательностей со старшим битом, равным 0. Следовательно, коды 0x5C и 0x7E отображаются в Unicode как U + 005C REVERSE SOLIDUS ( \
, обратная косая черта ) и U+007E ТИЛЬДА ( ~
) соответственно, [20] [21] [17] как они есть в ASCII ( ISO-646 -US). Это также осуществляется стандартом кодирования W3C/WHATWG. [22] Напротив, 0x5C отображается в U+00A5 ЗНАК ЙЕНЫ ( ¥
) в ISO-646-JP и, следовательно, в JIS X 0201 которого является стандарт Shift JIS , расширением . Соответственно, Windows-31J избегает дублирования кодирования обратной косой черты, сопоставляя двойной байт 0x815F с U+FF3C FULLWIDTH REVERSE SOLIDUS, тогда как стандартный Shift JIS сопоставляет его с U+005C. [17]
Однако 0x5C в Windows-932, тем не менее, в определенных контекстах считается знаком иены. [23] По этой причине во многих японских шрифтах U+005C отображается как символ иены, который обычно обозначается как U+00A5, а не как обратная косая черта согласно предложенному способу отображения Unicode. U+00A5 наилучшим образом отображается в одностороннем порядке на 0x5C в Windows-932. Однако код 0x5C в Windows-932 ведет себя как обратная косая черта (обратная косая черта) во всех отношениях (например, в путях к файлам в системах Windows), кроме того, как он отображается некоторыми шрифтами. [23] а в документации Microsoft для Windows-932 0x5C отображается в виде обратной косой черты. [21] Это отображение [20] соответствует кодировке «ibm-943_P15A-2003» в International Components for Unicode (ICU), [3] за исключением незначительного изменения порядка нескольких управляющих символов C0 .
IBM-943, как и IBM-932 , [5] является расширенным набором однобайтовой кодовой страницы 897 , [6] который сопоставляет 0x5C с символом иены ( ¥
) и 0x7E для надстрочной линии ( ‾
), [24] за этим следует кодировка с именем «ibm-943_P130-1999» в ICU. [8] Кодовая страница 897 (и, следовательно, также IBM-943 и IBM-932) также добавляет однобайтовые символы рисования прямоугольников, заменяющие определенные управляющие символы C0 . [24] однако они все равно могут рассматриваться как управляющие символы в зависимости от контекста. [25] и сопоставляются с управляющими символами в отделении интенсивной терапии. [8]
Макет [ править ]
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
См. также [ править ]
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с Фонд Мозилла . «Заметные отличия от именования IANA» . Создайте файлcoding_rs . документы.рс.
- ^ Сивонен, Анри. «Ошибка 27851 — Добавить MS932 в качестве метки Shift_JIS» . w3.org Система отслеживания ошибок .
- ^ Jump up to: Перейти обратно: а б с д и «Converter Explorer: ibm-943_P15A-2003 (псевдоним windows-31j)» . Международные компоненты для Unicode: демонстрация ICU .
- ^ Аоки, Осаму. «Глава 11. Преобразование данных» . Справочник по Дебиану . Дебиан.
- ^ Jump up to: Перейти обратно: а б с д и «ИБМ-943 и IBM-932» . Центр знаний IBM . ИБМ.
- ^ Jump up to: Перейти обратно: а б «Идентификаторы кодированных наборов символов — CCSID 943» . IBM Глобализация . ИБМ. Архивировано из оригинала 15 марта 2016 г.
- ^ Jump up to: Перейти обратно: а б «Свойство Encoding.WindowsCodePage — .NET Framework (текущая версия)» . MSDN . Майкрософт.
- ^ Jump up to: Перейти обратно: а б с «Проводник конвертеров: IBM-943_P130-1999» . Международные компоненты для Unicode: демонстрация ICU .
- ^ Jump up to: Перейти обратно: а б с «Наборы символов» . ИАНА.
- ^ ван Кестерен, Энн . «4.2. Названия и метки» . Стандарт кодирования . ЧТОРГ.
- ^ ван Кестерен, Энн . «5. Индексы (§ Индекс jis0208)» . Стандарт кодирования . ЧТОРГ.
- ^ Jump up to: Перейти обратно: а б «7.2.3. Стандартные кодировки» . Документация Python 3.6 . Фонд программного обеспечения Python . Проверено 19 сентября 2017 г.
- ^ Каплан, Майкл С. (26 мая 2007 г.). «PUA вне Unicode» . Разбираемся во всем .
- ^ Jump up to: Перейти обратно: а б Лунде, Кен (2009). «Приложение E: Стандарты набора символов поставщика» (PDF) . Обработка информации CJKV: китайские, японские, корейские и вьетнамские вычисления (2-е изд.). Севастополь, Калифорния : О'Рейли . ISBN 978-0-596-51447-1 .
- ^ Японский комитет промышленных стандартов (13 апреля 2004 г.). Набор японских графических символов для обмена информацией, плоскость 1 (PDF) . ITSCJ/ IPSJ . ИСО-ИК -233.
- ^ ван Кестерен, Энн . «Индексная визуализация jis0208» . Стандарт кодирования . ЧТОРГ.
- ^ Jump up to: Перейти обратно: а б с д «Неоднозначности при преобразовании из Shift-JIS в Unicode (ненормативный)» . XML-профиль для Японии . W3C.
- ^ «Проводник конвертеров: ibm-943_P15A-2003: стартовый байт 0x81» . Демонстрация отделения интенсивной терапии . Международные компоненты для Unicode.
- ^ «Проводник конвертеров: ibm-943_P130-1999: стартовый байт 0x81» . Демонстрация отделения интенсивной терапии . Международные компоненты для Unicode.
- ^ Jump up to: Перейти обратно: а б «CP932.TXT» . Консорциум Юникод.
- ^ Jump up to: Перейти обратно: а б «Старший байт NULL — Кодовая страница 932» . Майкрософт.
- ^ ван Кестерен, Энн . «12.3.1. Декодер Shift_JIS» . Стандарт кодирования . ЧТОРГ.
Если byte — это байт ASCII или 0x80, верните кодовую точку, значение которой — байт.
- ^ Jump up to: Перейти обратно: а б Каплан, Майкл С. (17 сентября 2005 г.). «Когда обратная косая черта не является обратной косой чертой?» . Разбираемся во всем .
- ^ Jump up to: Перейти обратно: а б «CP00897.txt» . ИБМ.
- ^ «Идентификаторы кодовых страниц — CP 00897» . IBM Глобализация . ИБМ. Архивировано из оригинала 17 марта 2016 г.
Внешние ссылки [ править ]
[ править ]
- Справочник Microsoft для кодовой страницы Windows 932
- Файл кодовой страницы для MS932
- Сопоставление кодовой страницы Microsoft 932 с Unicode
- Демонстрация кодовой страницы ICU 943C (ibm-943_P15A-2003 псевдоним windows-31j)