MIME / IANA | Shift_JIS |
---|---|
Псевдоним (а) | MS_Kanji [1] |
Язык (и) | В основном японский , но также с поддержкой английский , русский |
Стандарт | JIS X 0208: 1997 Приложение 1 |
Классификация | Extended ISO 646 , [а] переменной ширины кодирование , CJK кодирование |
Расширяется | JIS X 0201 8-битный формат |
Преобразует / кодирует | JIS X 0208 |
Преемник | Shift_JIS-2004 (JIS) Windows-31J (Интернет) |
| |
Shift JIS ( Shift Japanese Industrial Standards , также SJIS , MIME- имя Shift_JIS ) - это кодировка символов для японского языка , первоначально разработанная японской компанией ASCII Corporation совместно с Microsoft и стандартизированная как JIS X 0208, приложение 1 . К февралю 2021 [Обновить]г. 0,1% всех веб-страниц использовали Shift JIS, по сравнению с 1,3% в июле 2014 г. [2]
Японские веб-сайты имеют самый низкий уровень принятия Unicode после южнокорейских веб-сайтов (где EUC-KR гораздо более популярен): UTF-8 используется только для 91,3% веб-сайтов (остальные - Shift JIS и EUC-JP ). [3] [4]
Описание [ править ]
Сдвиг 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. Если программист знает об этом, его можно будет использовать (где (ロ ー ワ ー ル ド - Hello , Мир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 обратно совместим с ASCII также для 0x5C и не имеет проблемы с поиском строки.
Для последовательности JIS двухбайтовой , [5] преобразование в соответствующий сдвиг 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». [6] [7] Кодовая страница 943 IBM включает те же двухбайтовые коды, что и кодовая страница 932 Microsoft, в то время как кодовая страница 932 IBM включает меньше расширений (за исключением тех, которые Microsoft включает из NEC), и сохраняет порядок символов из издания 1978 года. JIS X 0208,вместо того, чтобы реализовывать замену вариантов персонажаот стандарта 1983 года. [8]
Windows-31J назначает 0x5C для U + 005C REVERSE SOLIDUS ( обратная косая черта ) и 0x7E для U + 007E TILDE , после 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]
MacJapanese [ править ]
Версия Shift-JIS , происходящий из классического Mac OS (известная как x-mac-japanese
, код страница 10001 [6] или MacJapanese) назначена тильда к 0x7E (после US-ASCII , не JIS X 0201 , который назначает длинный ряд здесь), но Yen войдите в 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, которая используется в веб-стандартах (см. Выше ). Например, сравните строку 89 плоскости 1 в 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 , используются определенными расширениями, что приводит к компоновке, подробно описанной в таблице ниже.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
См. Также [ править ]
- Японский язык и компьютеры
- Кодовая страница Microsoft 932
- Моджибаке
- Сдвиг JIS art
Ссылки [ править ]
- ^ a b c «Наборы символов» . IANA.
- ^ «Исторические тенденции использования кодировок символов для веб-сайтов, февраль 2021 г.» . w3techs.com . Проверено 11 февраля 2021 .
- ^ «Распределение кодировок символов среди веб-сайтов, использующих .jp» . w3techs.com . Проверено 9 июля 2020 .
- ^ «Распределение кодировок символов среди веб-сайтов, использующих японский язык» . w3techs.com . Проверено 3 июля 2020 .
- ^ j 1 и j 2 находятся в диапазоне от 33 (0x21) до 126 (0x7e) включительно (т. е. 7-битные значения символов, исключая управляющие символы (0–31 (0x1f) и 127 (0x7f)) и пробел)
- ^ a b «Свойство 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 г.). "Когда обратная косая черта не является обратной косой чертой?" .
- ^ Каплан, Майкл S (2007-05-26). «PUA за пределами Unicode» . Разбираемся со всем .
- ^ "5. Указатели (§ Указатель jis0208)" . Стандарт кодирования . WHATWG.
- ^ «4.2. Имена и метки» . Стандарт кодирования . WHATWG.
- ^ a b c «JAPANESE.TXT: преобразование (внешняя версия) японской кодировки Mac OS в Unicode 2.1 и более поздних версий» . Apple Computer, Inc.; Консорциум Unicode.
- ^ Лунде, Кен (2019-03-21). «Краткая история лигатур имени эры Японии» . Блог типа CJK . Adobe Inc .
- ^ «Варианты кодирования для MacJapanese» . Документация для разработчиков Apple . Яблоко.
- ^ Лунде, Кен (2008). «Приложение E: Стандарты набора символов поставщика» (PDF) . CJKV Обработка информации . O'Reilly Media . ISBN 9780596514471.
- ^ "Таблицы сопоставления кодов JIS X 0213" . x0213.org.
- ^ «JIS X 0213 の 代表 的 な 符号 化 方式 § Shift_JIS-2004» (на японском языке). Шестнадцатеричные числа в источнике были преобразованы в десятичные для отображения.
- ^ Японский комитет промышленных стандартов (2004-04-13). Набор японских графических символов для обмена информацией, плоскость 1 (PDF) . ITSCJ / IPSJ . ISO-IR -233.
- ^ "Индекс jis0208 визуализации" . Стандарт кодирования . WHATWG.
- ^ «Оригинальный смайлик от DoCoMo» . FileFormat.info.
- ^ «Оригинальный смайлик от KDDI» . FileFormat.info.
Внешние ссылки [ править ]
- Shift-JIS Kanji Table - таблица не-ASCII части кодового набора
- «Кодовая страница Windows 932» . Microsoft . 1 мая 2005 года Архивировано из оригинала на 2008-03-07. - определение Microsoft
- Формы Shift-JIS в ICU ( международные компоненты Unicode )
- ibm-942 (sjis78)
- ibm-943 (содержит отображение \ u00A5 ↔ \ x5C)
- Shift JIS (содержит отображение \ u005C ↔ \ x5C)