文字コード掲示板


記事表示


No.152投稿日時:2004/03/18(木) 01:56    <↑親記事:No.151>
投稿者:森山 将之

eucJP-ms と cp51932

日本語EUC で Windows の機種依存文字を扱うためのエンコーディングは私が知っているのだけで、次の 2 種類が存在します。

・Windows Code Page 51932
・eucJP-open (Unicode 経由で cp932 との相互変換を実現する場合は eucJP-ms)

Windows Code Page 51932 (以後、cp51932 とします) という Windows で使用されている日本語EUCは、IBM拡張文字のコードポイントをNEC選定IBM拡張文字やNEC特殊文字、JIS文字のコードポイントに集約してから、計算により EUC に変換しています。
EUC から CP932 への変換で注意すべき点としては、計算で CP932 に変換した後に、NEC選定IBM拡張文字のコードポイントを IBM拡張文字とJIS文字のコードポイントに置換する必要がありますので、ご注意ください。

eucJP-open は、JIS X 0212 で定義されている文字に関しては、JIS X 0212 のコードポイントを使用しますので、IBM拡張文字を JIS X 0212 や JIS X 0212 の空き領域にマッピングするたのマッピングテーブルが必要になってきます。
NEC選定IBM拡張文字は、IBM拡張文字のコードポイントに集約してからの変換になります。また、cp51932 で NEC選定IBM拡張文字の領域には、eucJP-open は、ユーザー定義文字の領域となっているので注意が必要です。

ちなみに、eucJP-open は、ユーザー定義文字を扱えますが、cp51932 はユーザー定義を扱えません。

という具体に、日本語EUCで機種依存文字を扱うのは、非常にややこしく、また各ソフトウェアでの実装が微妙に違ったりするので、日本語EUCで機種依存文字を取り扱うのは、リスクが伴うことを覚悟してください。
ソフトウェアの対応も、まちまちでなおかつ中途半端な実装が多いので、機種依存文字を扱うのであれば、日本語EUCは、極力使わない方向でプログラミングするか、使用するソフトの変換を事前に調べ上げてから、不具合があれば修正するなどして使う必要があるとく思います。

CP932(Windows-31J,MS932) 以上に、日本語EUCでのWindowsの機種依存文字の扱いは混沌としています。


Script : Sylpheed 1.24
Modified by MORIYAMA Masayuki