WikiDer > Shift JIS
MIME / IANA | Shift_JIS |
---|---|
Псевдоним (а) | MS_Kanji[1] |
Язык (и) | В первую очередь Японский, но также поддерживая английский, русский |
Стандарт | JIS X 0208: 1997 Приложение 1 |
Классификация | Расширенный ISO 646,[а] кодирование с переменной шириной, Кодирование CJK |
Расширяется | JIS X 0201 8-битный формат |
Преобразует / кодирует | JIS X 0208 |
Преемник | Shift_JIS-2004 (JIS) Окна-31J (Интернет) |
| |
Shift JIS (Сдвиг японских промышленных стандартов, также SJIS, MIME имя Shift_JIS) это кодировка символов для японский язык, первоначально разработанная Японский компания позвонила Корпорация ASCII в сочетании с Microsoft и стандартизированы как JIS X 0208 Приложение 1. К 2020 г.[Обновить], 0,2% всех веб-страниц использовали Shift JIS, по сравнению с 1,3% в июле 2014 года.[2]
Японские веб-сайты имеют самый низкий уровень принятия Unicode (после южнокорейских веб-сайтов, где EUC-KR, более популярны): UTF-8 используется только на 89,5% веб-сайтов (остальные - Shift JIS и EUC-JP).[3][4]
Описание
Shift JIS основан на наборах символов, определенных в JIS стандарты JIS X 0201:1997 (для однобайтовые символы) и JIS X 0208:1997 (для двухбайтовые символы). Старшие байты для двухбайтовых символов «сдвигаются» на половину ширины 64 катакана символы в однобайтовом диапазоне От 0xA1 до 0xDF. Однобайтовые символы 0xОт 00 до 0x7F соответствуют ASCII кодировка, кроме иена знак (U + 00A5) в 0x5C и над чертой (U + 203E) в 0x7E вместо обратной косой черты и тильды в наборе символов ASCII. Однобайтовые символы от 0xA1 до 0xDF отображаются на символы катаканы половинной ширины, найденные в JIS X 0201.
HTML, написанный в Shift JIS, все еще может быть интерпретирован до некоторой степени, если он неправильно помечен как ASCII, и когда тег набора символов находится в верхней части самого документа, поскольку важные начало и конец тегов и полей HTML, <,>, /, ", &,; кодируются теми же одиночными байтами, что и в ASCII, и эти байты не будут отображаться в двухбайтовых последовательностях. Shift JIS можно использовать в строковые литералы в языках программирования, таких как C, но следует учесть несколько моментов. Во-первых, что escape-символ 0x5C, обычно обратная косая черта, это половина ширины знак иены (¥) в Shift JIS. Если программист знает об этом, можно было бы использовать printf ("ロ ー ワ ー ル ド ¥ n");
(где ハ ロ ー ワ ー ル - Привет, мир и ¥ n - escape-последовательность), предполагая, что система ввода-вывода поддерживает Shift JIS выход. Во-вторых, байт 0x5C вызовет проблемы, когда он появится как второй байт двухбайтового символа, потому что он будет интерпретирован как escape-последовательность, что испортит интерпретацию, если за ним не последует другой 0x5C.
Shift JIS требует 8-битный чистый среда для передачи. Это полностью обратно совместимый с наследием JIS X 0201 однобайтовая кодировка, то есть поддерживает катакана половинной ширины и что любой действительный JIS X 0201 строка также является допустимой строкой Shift JIS. Однако для двухбайтовых символов Shift JIS гарантирует только то, что для первого байта будет установлен старший бит (0x80–0xFF); значение второго байта может быть старшим или младшим. Отображение байтовых значений 0x40–0x7E в качестве вторых байтов кодовые слова затрудняет надежное обнаружение Shift JIS, поскольку для символов ASCII используются одни и те же коды. Поскольку одно и то же значение байта может быть либо первым, либо вторым байтом, поиск по строкам затруднен, поскольку простой поиск может соответствовать второму байту символа и первому байту следующего, который не является реальным символом. Алгоритмы поиска строк должны быть адаптированы для Shift JIS.
С другой стороны, конкурирующий 8-битный формат EUC-JP, который не поддерживает однобайтовую катакану половинной ширины, обеспечивает более четкое и прямое преобразование в JIS X 0208 и обратно кодовые точки, поскольку все байты с набором старших битов являются частями двухбайтового символа, а все коды из диапазона ASCII представляют собой однобайтовые символы.
Unicode также не имеет некоторых недостатков Shift JIS. Unicode не имеет двусмысленных версий: новые символы назначаются на неиспользуемые места одной организацией, в то время как зоны частного использования четко обозначены, никогда не будут использоваться для стандартных символов и редко требуются из-за всеобъемлющего характера Unicode. Для Shift JIS компании работают параллельно. UTF-8-encoded Unicode обратно совместим с ASCII также для 0x5C и не имеет проблемы поиска строки.
Для двухбайтовой последовательности JIS ,[5] преобразование в соответствующие байты Shift JIS является:
Несколько версий
Существует много разных версий Shift JIS. Есть два направления для расширения:
Во-первых, JIS X 0208 не заполняет все пространство 94 × 94, закодированное для него в Shift JIS, поэтому здесь есть место для большего количества символов - это действительно расширения JIS X 0208, а не самого Shift JIS.
Во-вторых, Shift JIS имеет больше места для кодирования, чем требуется для JIS X 0201 и JIS X 0208 (видеть § Сдвиг байтовой карты JIS ниже), и это пространство может использоваться и используется для еще большего количества символов.
Окна-932 / Окна-31J
Самым популярным расширением является Кодовая страница Windows 932 (а CCSID также используется для Расширение IBM для Shift JIS), который зарегистрирован в IANA как "Windows-31J",[1] отдельно от Shift JIS. Это было популяризировано Microsoft, хотя сама Microsoft не распознает имя Windows-31J и вместо этого называет этот вариант «shift_jis».[6][7] Кодовая страница 943 IBM включает те же двухбайтовые коды, что и кодовая страница 932 Microsoft, в то время как кодовая страница 932 IBM включает меньшее количество расширений (за исключением тех, которые Microsoft включает из NEC), и сохраняет порядок символов из издания JIS X 0208 1978 года, а не чем реализация замена вариантов персонажей от стандарта 1983 года.[8]
Windows-31J назначает 0x5C для U + 005C REVERSE SOLIDUS ( обратная косая черта) и от 0x7E до U + 007E ТИЛЬДА, следующий US-ASCII.[9] Однако большинство локализованных шрифтов в Windows отображают U + 005C как Знак иены за JIS X 0201 совместимость.[10][11] Он включает несколько расширений, а именно "Специальные символы NEC (Строка 13), выбор NEC расширений IBM (строки 89–92) и расширений IBM (строки 115–119) »,[1] в дополнение к выделению некоторого пространства для кодирования для определение конечного пользователя.[12]
Кодовая страница Windows 932 - это версия, используемая в W3C/WHATWG стандарт кодирования, используемый HTML5, который включает «ранее проприетарные расширения от IBM и NEC» из Windows-31J в свою таблицу для JIS X 0208,[13] а также трактует метку shift_jis как синоним «windows-31j» с целью «совместимости с развернутым контентом».[14]
MacЯпонский
Версия Shift-JIS, происходящая из классическая Mac OS (известный как x-mac-японский
, Кодовая страница 10001[6] или 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.[15] Этот вариант был представлен в KanjiTalk версия 7.[16]
Однако в некоторых гарнитурах Mac OS использовались другие варианты. Сай Минчо и Чу Готик используют "PostScript"вариант MacJapanese, который включал дополнительные вертикальные формы представления и другой набор расширенных специальных символов, основанный на Специальные символы NEC, некоторые из которых были доступны только в версиях шрифтов для принтера.[15] Старые версии Maru Gothic и Hon Mincho от Система 7.1 закодированные вертикальные формы представления на 10 (а не 84) строк JIS вниз от их канонических форм и не включали расширения специальных символов, это было впоследствии изменено.[15][17] Типичный вариант, используемый с KanjiTalk версии 6, размещает вертикальные формы представления на 10 строк вниз, а также использует макет расширения NEC для строки 13.[18]
Shift_JISx0213 и Shift_JIS-2004
Псевдоним (а) | Shift_JISx0213 |
---|---|
Язык (и) | Японский, Айны, английский, русский |
Стандарт | JIS X 0213 |
Расширяется | Shift_JIS (1997), JIS X 0201 (8 бит) |
Преобразует / кодирует | JIS X 0213 |
Предшествует | Shift_JIS (1997) |
Новее JIS X 0213 стандарт определяет расширенный вариант Shift_JIS, называемый Shift_JISx0213 (в предыдущей версии стандарта) или Shift_JIS-2004. Это надмножество стандартного Shift JIS.[19]
Чтобы представить выделенные строки на обеих плоскостях JIS X 0213, Shift_JIS-2004 использует следующий метод сопоставления кодовых точек.[20]
В приведенном выше описании представляет собой двухбайтовую последовательность Shift_JIS-2004, это самолет (面, люди, поверхность) число (1 или 2), это строка (区, ку, сторожить) номер (1-94) и это клетка (点, десять, точка) номер (1-94). В ку и десять числа эквивалентны и соответственно, где представляет собой двухбайтовую последовательность JIS, ссылающуюся на данную плоскость.
Тот же набор символов может быть представлен EUC-JIS-2004, аналог на базе EUC-JP.
Некоторые дополнения конфликтуют с популярными расширениями Shift JIS, включая кодовую страницу Windows 932, которая используется в веб-стандартах (см. над). Например, сравните плоскость 1 ряд 89 в JIS X 0213 (начало 硃, 硎, 硏…)[21] до строки 89 в варианте JIS X 0208, определенном в веб-стандартах (начало 纊, 褜, 鍈…).[22] Кроме того, некоторые символы отображаются в символы Unicode за пределами BMP.
Другие варианты
Пространство со стартовыми байтами от 0xF5 до 0xF9 (за пределами области, используемой для JIS X 0208) используется японцами. мобильный телефон операторы для пиктограммы для использования в Электронное письмо.[23] KDDI идет дальше и определяет еще сотни в пространстве с ведущими байтами 0xF3 и 0xF4.[24]
Помимо этого, в Shift JIS было внесено множество незначительных изменений, в которых кое-где были изменены отдельные персонажи. Большинство этих расширений и вариантов не имеют IANA регистрации, поэтому есть много возможностей для путаницы, если используются расширения.
Вариант - это тот, который необходимо использовать, если вы хотите кодировать Shift JIS в исходном коде. струны из C и аналогичные языки программирования. Этот вариант удваивает байт 0x5C, если он появляется как второй байт двухбайтового символа, но не, если он отображается как один символ «¥» (ASCII: «»), потому что 0x5C является началом escape-последовательность. Лучший способ справиться с этим - специальный редактор, который кодирует Shift JIS Сюда.
Сдвиг байтовой карты JIS
Как определено в JIS X 0208: 1997
В приведенной ниже таблице показано подробное значение каждого байта в потоке, закодированного в стандартном формате. Shift JIS (в соответствии с JIS X 0208: 1997).
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
С расширениями поставщика или JIS X 0213
Некоторые байты, которые не используются для однобайтовых кодов или начальных байтов в JIS X 0208: 1997 используются определенными расширениями, поэтому их макет показан в таблице ниже.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Смотрите также
Рекомендации
- ^ а б c «Наборы символов». IANA.
- ^ «Исторические тенденции использования кодировок символов для веб-сайтов, январь 2020 г.». w3techs.com. Получено 2020-01-19.
- ^ «Распределение кодировок символов среди веб-сайтов, использующих .jp». w3techs.com. Получено 2020-07-09.
- ^ «Распределение кодировок символов среди веб-сайтов, использующих японский язык». w3techs.com. Получено 2020-07-03.
- ^ j1 и j2 каждый находится в диапазоне от 33 (0x21) до 126 (0x7e) включительно (т.е. 7-битные символьные значения, исключая управляющие символы (0–31 (0x1f) и 127 (0x7f)) и пробел)
- ^ а б "Свойство Encoding.WindowsCodePage - .NET Framework (текущая версия)". MSDN. Microsoft.
- ^ «Идентификаторы кодовой страницы». Центр разработки для Windows. Microsoft.
- ^ «IBM-943 и IBM-932». Центр знаний IBM. IBM.
- ^ "CP932.TXT". Консорциум Unicode.
- ^ «3.1.1 Подробности проблем». Проблемы и решения для Unicode и символов, определенных пользователем / поставщиком. Открытая группа в Японии. Архивировано из оригинал на 1999-02-03.
- ^ Каплан, Майкл С. (17 сентября 2005 г.). "Когда обратная косая черта не является обратной косой чертой?".
- ^ Каплан, Майкл С. (26 мая 2007 г.). «PUA за пределами Unicode». Сортировка всего.
- ^ "5. Указатели (§ Указатель jis0208)". Стандарт кодирования. WHATWG.
- ^ «4.2. Имена и ярлыки». Стандарт кодирования. WHATWG.
- ^ а б c "JAPANESE.TXT: преобразование (внешняя версия) японской кодировки Mac OS в Unicode 2.1 и более поздних версий". Apple Computer, Inc.; Консорциум Unicode.
- ^ Лунде, Кен (2019-03-21). "Краткая история лигатур имен японской эпохи". Блог CJK Type. Adobe Inc.
- ^ «Варианты кодирования для японского языка Mac». Документация для разработчиков Apple. Яблоко.
- ^ Лунде, Кен (2008). «Приложение E: Стандарты набора символов поставщика» (PDF). CJKV Обработка информации. O'Reilly Media. ISBN 9780596514471.
- ^ «Таблицы сопоставления кодов JIS X 0213». x0213.org.
- ^ "JIS X 0213 の 代表 的 な 符号 化 方式 § Shift_JIS-2004" (на японском языке). Шестнадцатеричные числа в источнике были преобразованы в десятичные для отображения.
- ^ «233: Набор японских графических символов для обмена информацией, плоскость 1» (PDF). IPSJ.
- ^ "Индекс jis0208 визуализация". Стандарт кодирования. WHATWG.
- ^ «Оригинальный смайлик от DoCoMo». FileFormat.info.
- ^ «Оригинальный смайлик от KDDI». FileFormat.info.
внешняя ссылка
- Shift-JIS Таблица кандзи - таблица не-ASCII части кодового набора
- "Кодовая страница Windows 932". Microsoft. 1 мая 2005 г. Архивировано с оригинал на 2008-03-07. - определение Microsoft
- Формы Shift-JIS в ОИТ (Международные компоненты для Unicode)