Сетевые кодировки японского языка.

    Хотя собственно японский язык не очень сложен, он использует одну из самых сложных систем письменности. См. например "Японский для всех" А.Н. Колесникова или введение к книге "Как пишут в Японии". Кроме того, что применяется два разных алфавита : хирагана(hiragana) и катакана (katakana), применяются также и иероглифы (kanji) которых просто очень очень много. В современном японском 1850 только "официальных" иероглифов, куча старинных, а также имена собственные, географические названия и т.д.

    Все это, конечно же, вызывает проблемы с использованием японской письменности в вычислительной технике (базы данных (SQL), e-mail, news, WWW). Такое большое количество символов невозможно представить одним байтом. Поэтому применяют многобайтовые кодировки, когда один символ занимает два, три или более байт.

    Набор "допустимых" иероглифов неоднократно пересматривался, но к счастью, в настоящее время набор японских символов вполне стандартизован. Основную работу по стандартизации проделала Japanese Standards Association, разработавшая семейство стандартов JIS (Japanese Industrial Standards), например JIS X 0201, JIS X 0208, JIS X 0212 .

JIS X 0201 (1976) - определяет два 7-битных набора символов и один 8-ми битный. Первый 7-ми битный набор - это эквивалент ASCII, за исключением кодовой позиции 5/12 содержащей YEN SIGN вместо BACKSLASH и кодовой позиции 7/14, содержащей OVERSCORE вместо TILDE. Второй 7-ми битный кодовый набор содержит катакану которая в нем называется "hankaku" - то есть буквы половинной ширины. Эти символы занимают только половину ширины обычных японских иероглифов (Kanji) которые называются "zenkaku" - то есть символы полной ширины. Последний 8-ми битный набор - это объединение двух 7-ми битных наборов, где катакана расположена в пространстве G1 ISO-2022 (от 10/0 до 15/15) в котором использованы только позиции от 10/1 до13/15.

JIS X 0208 (1983) - определяет набор из 6353 иероглифов (Kanji), 169 Kana, 166 латинских, греческих, и кириллических символов, 10-ти цифр, 147 специальных символов, и 32 специальных знаков препинания, всего 6877 символов. Символы расположены по секциям, по 94 символа каждая, которые отображаются в пространство G0 ISO-2022 (от 2/1 до 7/14 = 94 кодовых позиций). Иероглифы (kanji) согласно этому стандарту делятся на две группы: 2965 level 1 Kanji, и 3388 level 2 Kanji. Эти два набора отличаются принципом сортировки: level 1 отсортирован согласно фонетическому принципу; level 2 отсортирован по ключам и по количеству черт.

JIS X 0212 (1990) - определяет набор из примерно 6000 дополнительных иероглифов, не определенных в JIS X 0208. Эти kanji отсортированы подобно level 2 в JIS X 0208, то есть по ключам, количествам черт, и по омонимам.

Сетевые кодировки.

    Написанием софта для Японии занимались как крупные транснациональные компании (Microsoft, IBM, SUN) так и собственные японские разработчики. И к сожалению (подобно ситуации в русском языке) они наплодили большое количество различных кодировок. Большинство этих кодировок базируются на стандартах JIS (кроме UNICODE).

Вот пять разных HTML файлов в разных японских MultiByte кодировках :

*    Первые два символа  U+6587 и U+5B57 - "символ" по-японски, потом слово "character" латиницей, потом слово "символ" : шесть букв в кириллице. (Японские кодировки JIS X 0208 содержат кириллицу и греческие буквы).

    Кодировки HTML проставлены через META и одновременно через .htaccess. Метод. Надеюсь, ваш броузер их покажет...


    Кодировка JIS - самая старая. На самом деле, это кодировка набора символов JIS сделанная по стандарту ISO-2022. Имеет MIME типы ISO-2022-JP (RFC-1468) и ISO-2022-JP-1 (RFC-2237). Отличается тем, что содержит символ ESC (033) прямо в тексте документа. Иногда это удобно (например для вывода на принтер с поддержкой JP) иногда - не очень (для SQL, e-mail, news и web).  Для кодирования каждого символа JIS требуется два байта. "Назначателями" для JIS X 0208 в строке ISO-2022 являются следующие последовательности:

sequence      hex values       effect   

Esc ( B       $1b $28 $42      switch to ASCII
Esc ( J       $1b $28 $4a      switch to JIS Roman (JIS X 0201-1976)
Esc $ @       $1b $24 $40      switch to JIS C 6226-1978
Esc $ B       $1b $24 $42      switch to JIS X 0208-1983

    Кодировка Shift-JIS, иначе именуемая CP_932 была введена компанией Microsoft в своей операционной системе MS-DOS/V для NEC-PC и MS-Windows 3.1(J). Она основана на механизмах DBCS (Double-Byte Code Set). Младшая половина набора - символы ASCII. Старшая половина - коды многобайтных символов (A0-DF - однобайтовая kana). Эта кодировка стала практически стандартом для личной e-mail и WWW из за своей распространенности на японских персоналках.



Схема организации кодировки Shif-JIS.

    Кодировка EUC (Extended Unix Code) точнее EUC-JP применяется на UNIX-машинах и продвигается в основном производителями рабочих станций : SUN, IBM, HP. Иногда применяется на крупных корпоративных сайтах. MIME charset: EUC-JP



Соответствие между Shift-JIS и EUC

 

    Кодировка UTF-8 - UNICODE. Пока не очень активно применяется из за прохладного отношения к идее UNICODE CJK-Unification (то есть объединения японских, китайских и корейских символов, сходных по начертанию), поскольку считается, что UNICODE CJK более ориентировано на Китай. Однако после появления неплохих бесплатных UNICODE True-Type фонтов (например MSMINCHO.TTF) имеющих вполне "японское" начертание, эта кодировка начинает применяться все шире. UTF-8 -- весьма перспективная кодировка, поскольку кроме японского языка может кодировать символы любых других языков.

 

    Еще одна кодировка - NCR - это в действительности HTML 4.0 форма UNICODE, где каждый символ представлен в виде NCR (Numeric Character Reference) : &xxxx;, то есть фактически его номером в UNICODE. Работает только для HTML в большинстве современных браузеров (Netscape, Opera, MS IE). Очень удобна, когда надо вставить несколько иероглифов в  документ HTML 4.0, например в русский или Latin-1.


Дополнительную информацию можно найти тут:


Last change : 30-01-2004