[LE-talk-ja 16] Re: ISO-2022-JP-MS について

アーカイブの一覧に戻る

NARUSE, Yui narus****@airem*****
2006年 4月 6日 (木) 03:04:08 JST


はじめまして、成瀬と申します。

わたしは Legacy Encoding Project でターゲットに挙げられている、
nkf、Ruby/NKF、Encode::EUCJPMS をメンテナンスしています。

OSC2006 発表資料にもある通り、
これらではすでにこのプロジェクトとは独立に
CP932, CP51932, eucJP-ms には対応しておりまして、
この作業はそれなりに考えがあって行ったのですが、それについて。

わたしは今更レガシーエンコーディングに対応する必要性は、
ただ過去の資産の継承及び、
既存システムが残っている間の相互運用だと考えています。

そこで、日本語テキストを扱う場合に、
過去の資産及びシステムが使っている文字コードは、
* ISO-2022-JP
* Shift_JIS
* CP932
* EUC-JP
* eucJP-ms
* CP51932

だと考えました。
CP932 が Shift_JIS と別にあるのは、
* CSS が CP932 の方が大きい
* Unicode との対応が異なる
* そのような CP932 を用いた資産が相当数存在する
からです。

同様に、CP51932 は、
* CSS が EUC-JP と異なる
* eucJP-ms には CSS 的に含まれるが、
  CP51932 の NEC選定IBM拡張文字 の領域が eucJP-ms ではユーザ定義文字
* よって、CP51932 のテキストを eucJP-ms とみなすと化ける
  $ perl -e'print"\xEE\xEC"'| iconv -f cp932 -t cp51932 \
    | iconv -f euc-jp -t cp932
  -> iconv: (stdin):1:0: cannot convert
  $ perl -e'print"\xEE\xEC"'| iconv -f cp932 -t cp51932 \
    |iconv -f eucJP-ms -t cp932
 -> 化ける
* Unicode との対応が異なる (eucJP-ms とも一部異なる)
* そのような CP51932 を用いた資産が相当数存在する
  (IEから投げられた「日本語 (EUC)」をそのまま保存しているシステム)
という理由からこれも追加しました。

同様に、eucJP-ms も MySQL 周辺をはじめとして用いられているので、
これを追加しました。

風間さんはこの CP932, CP51932, eucJP-ms も必要ないし、
ユーザは使い分けることが難しいと考えていらっしゃるようですが、
eucjpms を Google で検索して 17000 件ヒットすることからも考えて、
相当の人が必要性を感じ、使い分けていると考えます。
(CP51932 はまだ少ないですが、今後 UTF-8 への移行の過程で、
 はまった人の blog 等がひっかかるようになると予想します)


一方で今回提案された ISO-2022-JP-MS は、
* CSS が ISO-2022-JP (RFC1468) と異なる
* そのような「ISO-2022-JP-MS で扱える符号化文字列」の
  資産は相当数存在する
ため、その類のものに対する必要性は一定あるでしょう。
(例えばMLのアーカイブの Unicode 化に用いる)
しかし、それならば CP502xx で十分でしょう。

ユーザ定義文字が ISO 2022 から逸脱するのは、
確かに問題だとも思いますが、
すでに逸脱した形でエンコードされたデータが
相当数存在するシステムで用いられるのですし、
ユーザ定義文字を出力しない CP50221 でいい気もします。

ユーザ定義文字をメールで送信するために、
当事者同士で合意の上 ISO-2022-JP-MS で送る余裕があるのならば、
CP932 で添付ファイルにするなり、UTF-8 で送るべき、
というのは当然の批判でしょう。

ISO-2022-JP-MS の謳う、CP932 との相互運用性は、
レガシーエンコーディングへの対応意義である、
「過去の資産の継承」からは外れるのではないか、
というのがわたしの考えです。


-- 
NARUSE, Yui  <narus****@airem*****>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA



Legacy-Encoding-talk-ja メーリングリストの案内
アーカイブの一覧に戻る