MIME / IANA | Shift_JIS |
---|---|
Псевдоним (а) | MS_Kanji |
Язык (и) | В основном японский, но также поддерживает английский, русский |
стандартный | JIS X 0208: 1997 Приложение 1 |
Классификация | Расширенная ISO 646, кодирование переменной ширины, Кодирование CJK |
Расширяет | JIS X 0201 8-битный формат |
Преобразование / кодирование | JIS X 0208 |
Преемник | Shift_JIS-2004 (JIS). Windows-31J (web) |
|
Shift JIS (Shift Japanese Industrial Standards, также SJIS, MIME имя Shift_JIS ) - кодировка символов для японского языка, первоначально разработанная японской компанией ASCII Corporation совместно с Microsoft. и стандартизирован как JIS X 0208, приложение 1 . К 2020 году 0,2% всех веб-страниц использовали Shift JIS, по сравнению с 1,3% в июле 2014 года.
Японские веб-сайты имеют самый низкий уровень использования Unicode (после южнокорейских веб-сайтов, где EUC-KR, более популярен): UTF-8 используется только для 89,5% веб-сайтов (остальные - это Shift JIS и EUC-JP ).
Сдвиг 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, и когда Тег charset находится в верхней части самого документа, поскольку важные начало и конец HTML-тегов и полей, <,>, /, ",,; кодируются теми же байтами, что и в ASCII, и эти байты выиграли" t отображаются в виде двухбайтовых последовательностей. Shift JIS можно использовать в строковых литералах в таких языках программирования, как C, но необходимо учитывать несколько моментов. Во-первых, escape-символ 0x5C, обычно обратная косая черта, является половинной шириной знаком йены (¥) в Shift JIS. Если программист знает из этого можно было бы использовать printf ("ハ ロ ー ワ ー ル ド ¥ n");
(где ハ ロ ー ワ ー ル ド - Hello, world и ¥ 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 не имеет двусмысленных версий: новые символы назначаются неиспользуемым местам одной организацией, в то время как области частного использования четко обозначены, никогда не будут использоваться для стандартных символов и редко нужны из-за всеобъемлющего характера Юникод. Для Shift JIS компании работают параллельно. UTF-8 Unicode обратно совместим с ASCII также для 0x5C и не имеет проблемы поиска строки.
Для двухбайтовой последовательности JIS преобразование в соответствующие байты 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 byte map ниже), и это пространство может использоваться и используется для больше персонажей.
Наиболее популярное расширение - кодовая страница Windows 932 (CCSID также используется для IBM расширение для Shift JIS ), который зарегистрирован в IANA как "Windows-31J" отдельно от Shift JIS. Это было популяризировано Microsoft, хотя сама Microsoft не распознает имя Windows-31J и вместо этого называет этот вариант «shift_jis». Кодовая страница 943 IBM включает те же двухбайтовые коды, что и кодовая страница 932 Microsoft, в то время как кодовая страница 932 IBM включает меньшее количество расширений (за исключением тех, которые Microsoft включает из NEC), и сохраняет порядок символов из издания JIS X 0208 1978 года, а не чем реализация варианта символа заменяет стандарт 1983 года.
Windows-31J назначает 0x5C для U + 005C REVERSE SOLIDUS (обратная косая черта ) и 0x7E для U + 007E ТИЛЬДА, после US-ASCII. Однако большинство локализованных шрифтов в Windows отображают U + 005C как знак йены для совместимости с JIS X 0201. Он включает в себя несколько расширений, а именно «специальные символы NEC (строка 13), выбор NEC расширений IBM (строки 89–92) и расширения IBM (строки 115–119)», а также настройку некоторой кодировки. за исключением определения конечного пользователя.
Кодовая страница Windows 932 - это версия, используемая в стандарте кодирования W3C / WHATWG, используемом HTML5, который включает «ранее проприетарные расширения IBM и NEC» из Windows-31J в своей таблице для JIS X 0208, а также трактует метку «shift_jis» взаимозаменяемо с «windows-31j» с целью «совместимости с развернутым контентом».
Версия Shift-JIS, происходящая из классической Mac OS (известной как x-mac-japanese
, кодовая страница 10001 или 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. Этот вариант был представлен в KanjiTalk версии 7.
Однако в некоторых гарнитурах Mac OS использовались другие варианты. Сай Минчо и Chu Gothic используют вариант MacJapanese "PostScript ", который включает дополнительные вертикальные формы представления и другой набор расширенных специальных символов, основанный на специальных символах NEC, некоторые из которые были доступны только в версиях шрифтов для принтера. Более старые версии Maru Gothic и Hon Mincho из System 7.1 закодировали вертикальные формы представления на 10 (а не на 84) строк JIS вниз от их канонических форм и не включали специальные расширения символов, это было впоследствии изменено. Типичный вариант, используемый с KanjiTalk версии 6, размещал вертикальные формы представления на 10 строк вниз, а также использовал макет расширения NEC для строки 13.
Псевдоним ( es) | 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.
Чтобы представить выделенные строки на обеих плоскостях JIS X 0213, Shift_JIS-2004 использует следующий метод сопоставления кодовых точек.
В приведенном выше примере - двухбайтовая последовательность Shift_JIS-2004, - плоскость (面, men, поверхность) число (1 или 2), - номер строки (区, ku, ward) (1-94) и - номер ячейки (点, десятка, точка) (1-94). Числа ku и десять эквивалентны и соответственно, где - это двухбайтовая последовательность JIS, указывающая на заданную плоскость.
Тот же набор символов может быть представлен EUC-JIS-2004, аналогом на основе EUC-JP.
Некоторые дополнения противоречат популярным расширениям Shift JIS, включая кодовую страницу Windows 932, которая используется в веб-стандартах (см. выше). Например, сравните строку 89 плоскости 1 в JIS X 0213 (начало 硃, 硎, 硏…) с строкой 89 в варианте JIS X 0208, определенном в веб-стандартах (начало 纊, 褜, 鍈…). Кроме того, некоторые символы отображаются в символы Unicode за пределами BMP.
Пространство с ведущими байтами от 0xF5 до 0xF9 (за пределами региона, используемого для JIS X 0208) используется японскими операторами мобильных телефонов для пиктограмм для использования в электронной почте. KDDI идет дальше и определяет еще сотни в пространстве с ведущими байтами 0xF3 и 0xF4.
Помимо этого, есть В Shift JIS было внесено множество незначительных изменений, в которых кое-где были изменены отдельные символы. Большинство этих расширений и вариантов не имеют регистрации IANA, поэтому существует большая вероятность путаницы, если расширения используются.
Вариант - это тот, который необходимо использовать, если вы хотите кодировать Shift JIS в исходном коде строк из C и подобных языках программирования. Этот вариант удваивает байт 0x5C, если он появляется как второй байт двухбайтового символа, но не, если он появляется как один символ «¥» (ASCII: «\»), потому что 0x5C является началом escape-символа . последовательность. Лучший способ справиться с этим - специальный редактор, который таким образом кодирует Shift JIS.
В приведенной ниже таблице показано подробное значение каждого байта в потоке, закодированном в стандартном Shift JIS (соответствующем согласно JIS X 0208: 1997).
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Некоторые байты, которые не используются для однобайтовые коды или начальные байты в JIS X 0208: 1997 используются некоторыми расширениями, что приводит к компоновке, подробно описанной в таблице ниже.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
.