Jump to content

Сдвиг HE

(Перенаправлено с MacJapanese )
Сдвиг HE
МИМ / IANA Shift_HE
Псевдоним(а) MS_Кандзи, [1] ПКК [2] [3]
Язык(и) В основном японский , но также поддерживаются английский , русский , болгарский , греческий.
Стандартный JIS X 0208:1997 Приложение 1
Классификация Расширенный ISO 646 , [а] кодировка переменной ширины , кодировка CJK
Расширяет JIS X 0201 8-битный формат
Преобразует/кодирует ДЖИС Х 0208
Преемник Shift_JIS-2004 (JIS)
Windows-31J (веб)

Shift JIS (также SJIS , MIME- имя Shift_JIS , известное как PCK в Solaris ) контексте [2] [3] кодировка символов японского языка , первоначально разработанная японской компанией ASCII Corporation. [б] совместно с Microsoft и стандартизирован как JIS X 0208 Приложение 1 .

Сдвиг JIS основан на наборах символов, определенных в JIS стандартах JIS X 0201 :1997 (для однобайтовых символов ) и JIS X 0208 :1997 (для двухбайтовых символов ).

По состоянию на май 2024 г. 0,3% опрошенных веб-страниц использовали Shift JIS (фактически декодированный как надмножество кодировки Windows-31J ), снижение с 1,3% в июле 2014 года. [4] Shift JIS — вторая по популярности кодировка символов для японских веб-сайтов, используемая 5,1% сайтов в домене .jp, а UTF-8 используется 94,9% японских веб-сайтов. [5] [6]

Структура

[ редактировать ]

Shift JIS — это расширение однобайтовой кодировки JIS X 0201 :1997 , которое использует неназначенные кодовые точки в JIS X 0201 для кодирования двухбайтового набора символов JIS X 0208 :1997 . Ведущие байты двухбайтовых символов «смещаются» вокруг 64 символов катаканы половинной ширины в однобайтовом диапазоне от 0xA1 до 0xDF .

Однобайтовые символы от 0x00 до 0x7F соответствуют кодировке ASCII , за исключением знака иены (U+00A5) в 0x5C и надстрочной черты (U+203E) в 0x7E вместо обратной косой черты и тильды набора символов ASCII соответственно (эти отклонения из ASCII в соответствии с JIS X 0201 ). Однобайтовые символы от 0xA1 до 0xDF соответствуют символам катаканы половинной ширины, найденным в JIS X 0201 .

Для двухбайтовых символов первый байт всегда находится в диапазоне от 0x81 до 0x9F или от 0xE0 до 0xEF (эти диапазоны не назначены в JIS X 0201 ). Если первый байт нечетный, второй байт должен находиться в диапазоне от 0x40 до 0x9E (но не может быть 0x7F); если первый байт четный, второй байт должен находиться в диапазоне от 0x9F до 0xFC.

Shift JIS гарантирует только то, что первый байт двухбайтовых символов будет иметь высокий набор битов (0x80–0xFF); значение второго байта может быть как высоким, так и низким. Появление значений байтов 0x40–0x7E в качестве вторых байтов кодовых слов затрудняет надежное обнаружение Shift JIS, поскольку для символов ASCII используются одни и те же коды. Поскольку одно и то же значение байта может быть либо первым, либо вторым байтом, поиск строк затруднен, поскольку простой поиск может соответствовать второму байту символа и первому байту следующего, который не является допустимым символом Shift JIS. Алгоритмы поиска строк должны быть адаптированы для Shift JIS .

Совместимость

[ редактировать ]

Shift JIS полностью обратно совместим с JIS X 0201 однобайтовой кодировкой , а это означает, что любая допустимая строка JIS X 0201 также является допустимой строкой Shift JIS.

Двухбайтовые символы в JIS X 0208 необходимо преобразовать, чтобы их можно было закодировать в Shift JIS. Для двухбайтовой последовательности JIS X 0208 , [с] преобразование в соответствующие байты Shift JIS является:

Конкурирующий 8-битный формат EUC-JP , который не поддерживает однобайтовую катакану половинной ширины, обеспечивает более чистое и прямое преобразование в кодовые точки JIS X 0208 и обратно , поскольку все байты со старшими битами являются частями двойного кода. -байтовый символ и все коды из диапазона ASCII представляют собой однобайтовые символы.

Использование

[ редактировать ]

HTML, написанный в Shift JIS, по-прежнему можно интерпретировать в некоторой степени, если он неправильно помечен как ASCII и когда тег кодировки находится в верхней части самого документа, поскольку важное начало и конец тегов и полей HTML ( <, >, /, ", &, ;) кодируются теми же байтами, что и в ASCII, и эти байты не появляются в двухбайтовых последовательностях.

Shift JIS можно использовать в строковых литералах в таких языках программирования, как C , но необходимо принять во внимание несколько вещей. Во-первых, escape-символ 0x5C, обычно обратная косая черта , представляет собой половинной ширины знак иены (¥) в Shift JIS. Если программист знает об этом, можно было бы использовать printf("ハローワールド¥n"); (где ハローワールド — «Привет, мир», а ¥n — escape-последовательность), при условии, что система ввода-вывода поддерживает Shift JIS вывод . Во-вторых, байт 0x5C вызовет проблемы, когда он появится как второй байт двухбайтового символа, поскольку он будет интерпретироваться как escape-последовательность, что испортит интерпретацию, если за ним не последует еще один 0x5C.

Несколько версий

[ редактировать ]
Диаграмма Эйлера, сравнивающая репертуары JIS X 0208 , JIS X 0212 , JIS X 0213 , Windows-31J , стандартного репертуара Microsoft и Unicode
Связь между вариантами Shift_JIS на ПК и соответствующими кодировками, включая пересечения и другие подмножества. Названия даны описательно.

Существует множество различных версий Shift JIS. Есть два направления для расширения:

Во-первых, JIS X 0208 не заполняет все пространство 94×94, закодированное для него в Shift JIS, поэтому здесь есть место для большего количества символов — это действительно расширения JIS X 0208, а не самого Shift JIS.

Во-вторых, Shift JIS имеет больше места для кодирования, чем необходимо для JIS X 0201 и JIS X 0208 (см. § Карту байтов Shift JIS ниже), и это пространство может и используется для еще большего количества символов (как однобайтовых, так и двухбайтовых). персонажи).

Windows-932/Windows-31J

[ редактировать ]

Самым популярным расширением является кодовая страница Windows 932 ( CCSID также используется для расширения IBM для Shift JIS ), которая зарегистрирована в IANA как «Windows-31J». [1] отдельно от Shift JIS. Это было популяризировано Microsoft, хотя сама Microsoft не распознает имя Windows-31J и вместо этого называет этот вариант «shift_jis». [7] [8] Кодовая страница 943 IBM включает в себя те же двухбайтовые коды, что и кодовая страница 932 Microsoft, тогда как кодовая страница 932 IBM включает меньше расширений (за исключением тех, которые Microsoft включает в себя от NEC) и сохраняет порядок символов из издания JIS X 0208 1978 года, а не чем реализация замены вариантов символов из стандарта 1983 года. [9]

Windows-31J присваивает 0x5C U+005C REVERSE SOLIDUS ( обратная косая черта ) и 0x7E U+007E TILDE после US-ASCII . [10] Однако большинство локализованных шрифтов в Windows отображают U+005C как знак иены для совместимости с JIS X 0201 . [11] [12] Он включает в себя несколько расширений, а именно « специальные символы NEC (строка 13), выбор расширений IBM NEC (строки с 89 по 92) и расширения IBM (строки с 115 по 119)». [1] в дополнение к выделению некоторого пространства для кодирования для определения конечного пользователя . [13]

Кодовая страница Windows 932 — это версия, используемая в стандарте кодирования W3C / WHATWG , используемом HTML5 , который включает «ранее собственные расширения от IBM и NEC» из Windows-31J в своей таблице для JIS X 0208, [14] а также рассматривает метку «shift_jis» как взаимозаменяемую с «windows-31j» с целью обеспечения «совместимости с развернутым содержимым». [15]

MacЯпонский

[ редактировать ]

Версия Shift-JIS, происходящая из классической Mac OS (известная как x-mac-japanese, Кодовая страница 10001 [7] или MacJapanese) присвоил тильде 0x7E (после US-ASCII , а не JIS X 0201, который присваивает здесь надстрочную линию ), а знаку йены 0x5C (как в JIS X 0201 и стандартном Shift JIS ). Он также расширил JIS X 0201 , назначив обратную косую черту 0x80 (соответствует 0x5C в US-ASCII), неразрывный пробел 0xA0, знак авторского права 0xFD, символ товарного знака половинной ширины 0xFE и горизонтальное многоточие 0xFF. . Также были добавлены расширенные двухбайтовые символы; включая 53 формы вертикального представления в диапазоне Shift_JIS 0xEB41–0xED96, на 84 строки JIS ниже их канонических форм, и 260 специальных символов в диапазоне Shift_JIS 0x8540–0x886D. [16] Этот вариант был представлен в KanjiTalk версии 7. [17]

Однако в некоторых шрифтах Mac OS использовались другие варианты. Сай Минчо и Чу Готик используют вариант MacJapanese « PostScript », который включал дополнительные формы вертикального представления и другой набор расширенных специальных символов, основанных на специальных символах NEC , некоторые из которых были доступны только в версиях шрифтов для принтера. [16] Более старые версии Maru Gothic и Hon Mincho из Системы 7.1 кодировали формы вертикального представления на 10 (а не 84) строк JIS ниже их канонических форм и не включали расширения специальных символов; впоследствии это было изменено. [16] [18] Типичный вариант, используемый в KanjiTalk версии 6, размещал вертикальные формы представления на 10 строк ниже, а также использовал макет расширения NEC для строки 13. [19]

Shift_JISx0213 и Shift_JIS-2004

[ редактировать ]
Shift_JIS-2004
Псевдоним(а) Shift_JISx0213
Язык(и) японский , айнский , английский , русский
Стандартный ДЖИС Х 0213
Расширяет Shift_HE (1997),
JIS X 0201 (8-битный)
Преобразует/кодирует ДЖИС Х 0213
Предшественник Сдвиг_HE (1997)

Новый стандарт JIS X 0213 определяет расширенный вариант Shift_JIS, называемый Shift_JISx0213 (в предыдущей версии стандарта) или Shift_JIS-2004 . Это расширенный набор стандартного Shift JIS. [20]

Чтобы представить выделенные строки в обеих плоскостях JIS X 0213, Shift_JIS-2004 использует следующий метод сопоставления кодовых точек. [21]

В приведенном выше представляет собой двухбайтовую последовательность Shift_JIS-2004, номер плоскости ( , men , поверхность) (1 или 2), номер строки ( , ку , палата) (1-94) и — это номер ячейки ( , десять , точка) (1–94). Числа ку и десять эквивалентны и соответственно, где представляет собой двухбайтовую последовательность JIS, ссылающуюся на данную плоскость.

Тот же набор символов может быть представлен EUC-JIS-2004 , аналогом на основе EUC-JP.

Некоторые из дополнений конфликтуют с популярными расширениями Shift JIS, включая кодовую страницу Windows 932, которая используется в веб-стандартах (см. выше ). Например, сравните строку 89 плоскости 1 в JIS X 0213 (начинается с 硃, 硎, 硏...). [22] до строки 89 в варианте JIS X 0208, определенном в веб-стандартах (начинается с 纊, 褜, 鍈...). [23] Кроме того, некоторые символы соответствуют символам Юникода за пределами BMP.

Другие варианты

[ редактировать ]

Пространство с ведущими байтами от 0xF5 до 0xF9 (за пределами региона, используемого для JIS X 0208) используется японскими мобильной связи операторами для пиктограмм для использования в электронной почте . [24] KDDI идет дальше и определяет еще сотни в пространстве с помощью ведущих байтов 0xF3 и 0xF4. [25]

Помимо этого, в Shift JIS было внесено множество незначительных изменений, с изменением отдельных символов здесь и там. Большинство этих расширений и вариантов не имеют регистрации IANA , поэтому при использовании расширений возникает большая вероятность путаницы.

Вариант — это тот, который необходимо использовать, если вы хотите закодировать Shift JIS в строках исходного кода и подобных C языков программирования. Этот вариант удваивает байт 0x5C, если он отображается как второй байт двухбайтового символа, но не в том случае, если он отображается как одиночный символ «¥» (ASCII: «\"), поскольку 0x5C является началом escape-последовательности . Лучший способ справиться с этим — специальный редактор, который кодирует Shift JIS таким образом.

Сдвиг карты байтов JIS

[ редактировать ]

Как определено в JIS X 0208:1997.

[ редактировать ]

В приведенной ниже таблице дано подробное значение каждого байта в потоке, закодированном в стандартном Shift JIS (в соответствии с JIS X 0208:1997 ).

Первый байт
0 1 2 3 4 5 6 7 8 9 А Б С Д И Ф
0
1
2 ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ А Б С Д И Ф Г ЧАС я Дж К л М Н ТО
5 П вопрос Р С Т В V В Х И С [ ¥ ] ^ _
6 ` а б с д и ж г час я дж к л м н тот
7 п д р с т в v В х и С { | }
8
9
А
Б с А Хороший Э Ой Ка ко Се
С Та Чи Те К На Н Нет Не Нет Ха Привет Фу Он Хо Ма
Д Ми М Мне Мо Да Ра Ри Ле Лес Ро Н
И
Ф
Второй байт
0 1 2 3 4 5 6 7 8 9 А Б С Д И Ф
0
1
2
3
4
5
6
7
8
9
А
Б
С
Д
И
Ф
 
Непечатаемый символ ASCII
Неизменный символ ASCII
Измененный символ ASCII
Однобайтовая катакана половинной ширины
Первый байт двухбайтового символа JIS X 0208.
Не используется в качестве первого байта символа JIS X 0208.
Второй байт двухбайтового символа JIS X 0208, первая половина последовательности JIS которого была нечетной.
Второй байт двухбайтового символа JIS X 0208, первая половина последовательности JIS которого была четной.
Не используется как второй байт символа JIS X 0208.

С расширениями поставщика или JIS X 0213.

[ редактировать ]

Некоторые байты, которые не используются для однобайтовых кодов или начальных байтов в JIS X 0208:1997 , используются определенными расширениями, в результате чего схема подробно описана в таблице ниже.

Первый байт
0 1 2 3 4 5 6 7 8 9 А Б С Д И Ф
0
1
2 ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ А Б С Д И Ф Г ЧАС я Дж К л М Н ТО
5 П вопрос Р С Т В V В Х И С [ ¥ ] ^ _
6 ` а б с д и ж г час я дж к л м н тот
7 п д р с т в v В х и С { | }
8
9
А
Б с А Хороший Э Ой Ка ко Се
С Та Чи Те К На Н Нет Не Нет Ха Привет Фу Он Хо Ма
Д Ми М Мне Мо Да Ра Ри Ле Лес Ро Н
И
Ф
Второй байт
0 1 2 3 4 5 6 7 8 9 А Б С Д И Ф
0
1
2
3
4
5
6
7
8
9
А
Б
С
Д
И
Ф
 
Непечатаемый символ ASCII
Неизменный символ ASCII
Измененный символ ASCII
Однобайтовая катакана половинной ширины
Первый байт двухбайтового символа, используемый JIS X 0208 (и такими расширениями, как JIS X 0213, плоскость 1).
Первый байт двухбайтового символа, нераспределенный в JIS X 0208, но используемый плоскостью 1 JIS X 0213 или расширениями поставщика.
Первый байт двухбайтового символа за пределами JIS X 0208, используемый для плоскости 2 JIS X 0213 или для несвязанных расширений.
Не используется в качестве первого байта, используется некоторыми однобайтовыми расширениями.
Второй байт двухбайтового символа, первая половина последовательности JIS которого была нечетной.
Второй байт двухбайтового символа, первая половина последовательности JIS которого была четной.
Не используется в качестве второго байта двухбайтового символа.


См. также

[ редактировать ]
  1. ^ Не в самом строгом смысле этого слова, поскольку байты ASCII могут отображаться как байты следа.
  2. ^ Корпорацию ASCII не следует путать с кодировкой ASCII, используемой в других местах этой статьи.
  3. ^ В JIS X 0208 каждый j 1 и j 2 находятся в диапазоне от 33 (0x21) до 126 (0x7e) включительно (т. е. значения 7-битных символов, исключая управляющие символы (0–31 (0x1f) и 127 (0x7f)) и космос).
  1. ^ Перейти обратно: а б с «Наборы символов» . ИАНА.
  2. ^ Перейти обратно: а б "conputf8.c" . ОпенСолярис . Строка 305. 12 ноября 2008 г.
  3. ^ Перейти обратно: а б «Дополнительные японские модули iconv» . Что нового в операционной среде Solaris 9 9/04 . Корпорация Оракл .
  4. ^ «Исторические тенденции использования кодировок символов на веб-сайтах, май 2024 г.» . w3techs.com . Проверено 22 мая 2024 г.
  5. ^ «Распространение кодировок символов между веб-сайтами, использующими .jp» . w3techs.com . Проверено 22 мая 2024 г.
  6. ^ «Распространение кодировок символов среди веб-сайтов, использующих японский язык» . w3techs.com . Проверено 9 апреля 2024 г.
  7. ^ Перейти обратно: а б «Свойство Encoding.WindowsCodePage — .NET Framework (текущая версия)» . MSDN . Майкрософт.
  8. ^ «Идентификаторы кодовых страниц» . Центр разработки Windows . Майкрософт. 7 января 2021 г.
  9. ^ «ИБМ-943 и IBM-932» . Центр знаний IBM . ИБМ.
  10. ^ «CP932.TXT» . Консорциум Юникод.
  11. ^ «3.1.1 Подробности проблем» . Проблемы и решения для символов Юникода и символов, определяемых пользователем/поставщиком . Открытая группа Японии. Архивировано из оригинала 3 февраля 1999 г.
  12. ^ Каплан, Майкл С. (17 сентября 2005 г.). «Когда обратная косая черта не является обратной косой чертой?» .
  13. ^ Каплан, Майкл С. (26 мая 2007 г.). «PUA вне Unicode» . Разбираемся во всем .
  14. ^ «5. Индексы (§ Индекс jis0208)» . Стандарт кодирования . ЧТОРГ.
  15. ^ «4.2. Названия и метки» . Стандарт кодирования . ЧТОРГ.
  16. ^ Перейти обратно: а б с «JAPANESE.TXT: сопоставление (внешняя версия) японской кодировки Mac OS с Unicode 2.1 и более поздних версий» . Apple Computer, Inc.; Консорциум Юникод.
  17. ^ Лунде, Кен (21 марта 2019 г.). «Краткая история лигатур имен японской эпохи» . Типовой блог CJK . Adobe Inc.
  18. ^ «Варианты кодирования для MacJapanese» . Документация разработчика Apple . Яблоко.
  19. ^ Лунде, Кен (2008). «Приложение E: Стандарты набора символов поставщика» (PDF) . Обработка информации CJKV . О'Рейли Медиа . ISBN  9780596514471 .
  20. ^ «Таблицы сопоставления кодов JIS X 0213» . x0213.org.
  21. ^ «Типичная система кодирования JIS X 0213 § Shift_JIS-2004» (на японском языке) Шестнадцатеричные числа в исходном коде были преобразованы в десятичные для отображения.
  22. ^ Японский комитет промышленных стандартов (13 апреля 2004 г.). Набор японских графических символов для обмена информацией, плоскость 1 (PDF) . ITSCJ/ IPSJ . ИСО-ИК -233.
  23. ^ «Индексная визуализация jis0208» . Стандарт кодирования . ЧТОРГ.
  24. ^ «Оригинальные эмодзи от DoCoMo» . FileFormat.info.
  25. ^ «Оригинальные эмодзи от KDDI» . FileFormat.info.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ca2af0c4d6c36ba02175e4b2ca5ce441__1721321220
URL1:https://arc.ask3.ru/arc/aa/ca/41/ca2af0c4d6c36ba02175e4b2ca5ce441.html
Заголовок, (Title) документа по адресу, URL1:
Shift JIS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)