MORIYAMA Masayuki
moriy****@mirac*****
2006年 4月 7日 (金) 12:30:16 JST
森山です。 "NARUSE, Yui" <narus****@airem*****> wrote: > はじめまして、成瀬と申します。 > > わたしは Legacy Encoding Project でターゲットに挙げられている、 > nkf、Ruby/NKF、Encode::EUCJPMS をメンテナンスしています。 Encode モジュール用の eucJP-ms, CP51932 に関しては、作らねばと思ってい たのですが、なかなか重い腰が上がらず、成瀬さんに作っていただき助かりま した。 > 一方で今回提案された ISO-2022-JP-MS は、 > * CSS が ISO-2022-JP (RFC1468) と異なる > * そのような「ISO-2022-JP-MS で扱える符号化文字列」の > 資産は相当数存在する > ため、その類のものに対する必要性は一定あるでしょう。 > (例えばMLのアーカイブの Unicode 化に用いる) > しかし、それならば CP502xx で十分でしょう。 > > ユーザ定義文字が ISO 2022 から逸脱するのは、 > 確かに問題だとも思いますが、 > すでに逸脱した形でエンコードされたデータが > 相当数存在するシステムで用いられるのですし、 > ユーザ定義文字を出力しない CP50221 でいい気もします。 ユーザ定義文字を出力しない CP50221 にしてみました。 どうでしょう? ■ ISO-2022-JP-MS(改1) ユーザ定義文字を出力しない CP50221 使用するエスケープシーケンス 文字セット esc seq. 1バイト目 2バイト目 --------------------- --------- ------------------- --------- ------ US-ASCII ESC ( B 0x00-0x7F -- in/out JIS X 0201 ラテン文字 ESC ( J 0x00-0x7F -- in JIS X 0201 片仮名 ESC ( I 0x21-0x5F -- in/out SO/SI 0x21-0x5F -- in ESC ( B 0xA1-0xDF -- in ESC ( J 0xA1-0xDF -- in JIS X 0208:1978 ESC @ B 0x21-0x28,0x30-0x74 0x21-0x7E in JIS X 0208:1997 ESC $ B 0x21-0x28,0x30-0x74 0x21-0x7E in/out NEC特殊文字 ESC $ B 0x2D 0x21-0x7E in/out NEC選定IBM拡張文字 ESC $ B 0x79-0x7C 0x21-0x7E in/out ユーザ定義文字 ESC $ B 0x7F-0x92 0x21-0x7E in ※in = ISO-2022-JP-MS(改1) から Unicode への変換 out= Unicode から ISO-2022-JP-MS(改1) への変換 実は、Windows の CP5022X での SO/SI の扱いに関しては、やや特殊な事が 行われているようで、SO から SI の間のバイト列それぞれに 0x80 を OR して 0xA1〜0xDF の範囲であれば、JIS X 0201 片仮名として変換されます が、0x81〜0x9F, 0xE0〜0xFC のコードが出てくると、CP932 の 2バイトコー ドとみなして Unicode に変換するという事が行われているようなのです。 このような処理をしてやると、Becky! Internet Mail で送信したユーザ定 義文字を受信しても Unicode に変換できるようになります。 そこまでやる必要はないでしょうけれども… -- 森山 将之 moriy****@mirac***** ミラクル・リナックス株式会社