В отношении японского языка и компьютеров возникает много проблем адаптации, некоторые из которых уникальны для японского языка , а другие общие для языков с очень большим количеством символов. Количество символов, необходимых для написания на английском языке, довольно мало, и поэтому для кодирования каждого английского символа можно использовать только один байт (2 8 = 256 возможных значений). Однако количество символов в японском языке намного больше 256 и, таким образом, не может быть закодировано с использованием одного байта - японский язык, таким образом, кодируется с использованием двух или более байтов, в так называемой "двухбайтовой" или "многобайтовой" кодировке. Возникающие проблемы связаны с транслитерацией и романизацией , кодировкой символов и вводом японского текста.
Существует несколько стандартных методов кодирования японских символов для использования на компьютере, включая JIS , Shift-JIS , EUC и Unicode . В то время как сопоставление набора каны является простым делом, кандзи оказалось более сложным. Несмотря на усилия, ни одна из схем кодирования не стала фактическим стандартом, и к 2000-м годам использовались несколько стандартов кодирования. По состоянию на 2017 год доля трафика UTF-8 в Интернете увеличилась до более чем 90% во всем мире, и только 1,2% приходилось на использование Shift-JIS и EUC. Тем не менее, несколько популярных веб-сайтов, включая 2channel и kakaku.com, все еще используют Shift-JIS. [1]
До 2000-х годов большинство японских электронных писем были в кодировке ISO-2022-JP («кодировка JIS»), веб-страницы в Shift-JIS , а мобильные телефоны в Японии обычно использовали ту или иную форму расширенного кода Unix . [2] Если программа не может определить используемую схему кодировки, это может привести к появлению модзибаке (文字化け, «неправильно преобразованные искаженные/мусорные символы», буквально «преобразованные символы») и, следовательно, к нечитаемому тексту на компьютерах.
Первой широко используемой кодировкой была JIS X 0201 , которая представляет собой однобайтовую кодировку , охватывающую только стандартные 7-битные символы ASCII с расширениями катаканы половинной ширины . Она широко использовалась в системах, которые не были ни достаточно мощными, ни имели достаточно памяти для обработки кандзи (включая старое встроенное оборудование, такое как кассовые аппараты), поскольку преобразование кана-кандзи требовало сложного процесса, а вывод в кандзи требовал много памяти и высокого разрешения. Это означает, что при использовании этой техники поддерживалась только катакана, а не кандзи. Некоторые встроенные дисплеи все еще имеют это ограничение.
Разработка кодировок кандзи стала началом раскола. Shift JIS поддерживает кандзи и был разработан для полной обратной совместимости с JIS X 0201 , и поэтому используется во многих встроенных электронных устройствах. Однако Shift JIS имеет досадное свойство: он часто ломает любой парсер (программное обеспечение, считывающее закодированный текст), который не предназначен специально для его обработки.
Например, некоторые символы Shift-JIS включают обратную косую черту (0x5C "\") во втором байте, которая используется в качестве экранирующего символа во многих языках программирования.
Синтаксический анализатор, не поддерживающий Shift JIS, распознает 0x5C 0x82 как недопустимую escape-последовательность и удалит ее. [3] Таким образом, фраза вызывает mojibake.
Это может произойти, например, в языке программирования C , когда в текстовых строках есть Shift-JIS. Этого не происходит в HTML, поскольку ASCII 0x00–0x3F (включая ", %, & и некоторые другие используемые экранированные символы и разделители строк) не отображаются как второй байт в Shift-JIS, а обратная косая черта не является там экранированным символом. Но это может произойти для JavaScript , который может быть встроен в HTML-страницы.
С другой стороны, EUC обрабатывается гораздо лучше парсерами, написанными для 7-битного ASCII (и, таким образом, кодировки EUC используются в UNIX, где большая часть кода обработки файлов исторически была написана только для английских кодировок). Но EUC не имеет обратной совместимости с JIS X 0201, первой основной японской кодировкой. Дополнительные сложности возникают из-за того, что исходные стандарты электронной почты в Интернете поддерживают только 7-битные протоколы передачи. Таким образом, RFC 1468 (« ISO-2022-JP », часто называемый просто кодировкой JIS ) был разработан для отправки и получения электронных писем.
В стандартах набора символов , таких как JIS , включены не все требуемые символы, поэтому иногда для дополнения набора символов используются гайдзи (外字"внешние символы"). Гайдзи могут поставляться в форме внешних пакетов шрифтов, где обычные символы заменены новыми символами или новые символы добавлены в неиспользуемые позиции символов. Однако гайдзи непрактичны в интернет- средах, поскольку набор шрифтов должен быть передан с текстом для использования гайдзи. В результате такие символы пишутся с использованием похожих или более простых символов на месте, или текст может потребоваться кодировать с использованием большего набора символов (например, Unicode), который поддерживает требуемый символ. [4]
Unicode был предназначен для решения всех проблем кодирования на всех языках. Кодировка UTF-8, используемая для кодирования Unicode на веб-страницах, не имеет недостатков, присущих Shift-JIS. Unicode поддерживается международным программным обеспечением, и это устраняет необходимость в гайдзи. Однако все еще существуют разногласия. Для японского языка символы кандзи были унифицированы с китайскими; то есть символу, который считается одинаковым как в японском, так и в китайском языке, присваивается один номер, даже если его внешний вид на самом деле несколько отличается, а точный внешний вид оставлен на усмотрение использования шрифта, соответствующего локали. Этот процесс, называемый унификацией Хань , вызвал разногласия. [ необходима цитата ] Предыдущие кодировки в Японии, Тайване , материковом Китае и Корее обрабатывали только один язык, а Unicode должен обрабатывать все. Однако обработка кандзи/китайского языка была разработана комитетом, состоящим из представителей всех четырех стран/регионов. [ необходима цитата ]
В письменном японском языке используется несколько различных систем письма: кандзи (китайские иероглифы), 2 набора каны (фонетические слоговые азбуки) и латинские буквы. В то время как кана и латинские буквы можно вводить непосредственно в компьютер, ввод кандзи — более сложный процесс, поскольку кандзи гораздо больше, чем клавиш на большинстве клавиатур. Для ввода кандзи на современных компьютерах обычно сначала вводится чтение кандзи, затем редактор метода ввода (IME), также иногда называемый процессором интерфейса, показывает список кандидатов на кандзи, которые являются фонетическим соответствием, и позволяет пользователю выбрать правильный кандзи. Более продвинутые IME работают не по словам, а по фразам, тем самым увеличивая вероятность получения нужных символов в качестве первого представленного варианта. Ввод прочтений кандзи может осуществляться либо через романизацию ( rōmaji nyūryoku, ローマ字入力), либо через прямой ввод каны ( kana nyūryoku, かな入力). Ввод ромадзи более распространен на ПК и других полноразмерных клавиатурах (хотя прямой ввод также широко поддерживается), тогда как прямой ввод каны обычно используется на мобильных телефонах и подобных устройствах — каждая из 10 цифр (1–9, 0) соответствует одному из 10 столбцов в таблице годзюон каны, а многократные нажатия выбирают строку.
Существуют две основные системы латинизации японского языка, известные как Kunrei-shiki и Hepburn ; на практике «клавиатура ромадзи» (также известная как wāpuro rōmaji или «текстовый процессор ромадзи»), как правило, допускает свободную комбинацию обеих. Реализации IME могут даже обрабатывать клавиши для букв, не используемых в какой-либо схеме латинизации, таких как L , преобразуя их в наиболее подходящий эквивалент. При вводе каны каждая клавиша на клавиатуре напрямую соответствует одной кане. Система клавиатуры JIS является национальным стандартом, но есть альтернативы, такие как клавиатура со сдвигом большого пальца , обычно используемая профессиональными машинистками.
Японский язык можно писать в двух направлениях . Стиль Ёкогаки пишется слева направо, сверху вниз, как в английском языке. Стиль Татэгаки сначала пишется сверху вниз, а затем движется справа налево.
Чтобы конкурировать с Ичитаро , Microsoft выпустила несколько обновлений для ранних японских версий Microsoft Word , включая поддержку нисходящего текста, таких как Word 5.0 Power Up Kit и Word 98. [5] [6]
QuarkXPress был самым популярным программным обеспечением DTP в Японии в 1990-х годах, даже несмотря на то, что у него был долгий цикл разработки. Однако из-за отсутствия поддержки нисходящего текста его превзошел Adobe InDesign , который имел сильную поддержку нисходящего текста после нескольких обновлений. [7] [8]
В настоящее время [ когда? ] обработка нисходящего текста неполная. Например, HTML не поддерживает татегаки , и японские пользователи должны использовать таблицы HTML для его имитации. Однако уровень CSS 3 включает свойство " writing-mode
", которое может отображать татегаки при заданном значении " vertical-rl
" (т. е. сверху вниз, справа налево). Текстовые процессоры и программное обеспечение DTP имеют более полную поддержку для него.