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

Back to archive index

Kazuhiro Kazama kazam****@mac*****
2006年 4月 25日 (火) 12:34:47 JST


返事が遅くなってごめんなさい.

On 2006/04/18, at 21:41, MORIYAMA Masayuki wrote:
>> 正式な資料が手に入らないようなら,私からMicrosoftにコンタクトしてみま
>> しょうか?
>
> お願いしてよろしいでしょうか。

はい.もちろん向こうも会社の方針があるので,必ず望む答えが得られるとは 
限りませんが,誠意のある対応をしてくれると思います.

それで,ここは外したくないという要点があれば列挙して頂けますか?たとえ 
ば,

・CP5022Xをどれでも処理できるようにしているのか?
・外字はどうしているか?
・MSとしては,どのようにして欲しいか?

とか….

ところで,MS用JIS符号化(特定の文字符号化を限定しない,曖昧な表現で 
す)について考えていて一つ興味深いことがわかりました.

というのは,実はUTF-8レベルで文字のマッピング(たとえば,WAVE DASHがU 
+301CかU+FF5Eか)が混在しちゃうのはどうしようもない(たぶん,本当にど 
うしようもないと思う…)という仮定に立つとします.

また,問題にするのはマッピングの違いであり,文字レパートリはとりあえず 
範囲外とも仮定します.これはISO-2022-JPというのが情報交換専用であり文 
字レパートリを積集合に限定することが重要だということもありますが,この 
MLの報告を見ていても,あまりに変種(MS,Mac,メールソフトなど)が多す 
ぎて,実質的にISO-2022-JPを超えた範囲が使われても,それを完全に同定す 
るのは難しく,またUnicode変換した時点で意味がなくなる(復旧できない文 
字化け)ことです.

で,まず現場で一番問題になるのは,クライアントがWindows (CP932)でサー 
バがUnix系(EUC符号化)という時です.この時は,合わせてCP51932を使えば問 
題はないはずです(すでに普及してしまったeucJP-msも,限定された互換性を 
持つ???).

で,MS用JIS符号化を使うのは,たとえば

・nkf風に文字符号化を相互変換するケース.
・既存のメールをUnicode化してアーカイブ化するケース.
・Webブラウザのように,任意の文字符号化をサポートするケース.

だろうなと私は最初考えていました.ところが,これらのケースでは問題は解 
決されないようです.

というのは,Unicodeをベースとしたピボット変換を前提にすると,必ずUTF-8 
がサポートされると考えられます.しかし,UTF-8レベルではマッピングが統 
一できないので,たとえばCP5022Xの代わりにISO-2022-JPを使っても状況は同 
じ(一部の文字の欠落は許容する)ことになります.

たとえばWebブラウザの場合には,どちらの符号位置でも表示さえできれば問 
題は顕在化しにくいかもしれません.というのは,UTF-8のページはUTF-8で保 
存するからです.また,Unicodeデータベースアーカイブに既存のJISメールを 
マージするのも同じです.それは,一般にマッピングが異なる記号類は全文検 
索では無視されることが多い(その方がユーザの利便性が高い…たとえば,ハ 
イフンでもスペースでもよいとか)からです.

しかし,nkf風プログラムの場合には,レガシーエンコーディングに戻さなけ 
ればいけないので,文字が化けてしまうことになります.

これを回避するためには,たとえば次のような対策が必要です.

1, UTF-8入力をサポートしない.
2, プログラム内でどちらかに正規化する.
3, 出力時に,どちらも同じ文字に変換できる(例,U+301CとU+FF5EもWAVE  
DASHに)ようにする.

さて,これをどうするか…ということですねえ….

結局,CP5022Xの導入だけでマッピングの違いをカバーできるのは,UTF-8をサ 
ポートしないでISO-2022-JPでしかやりとりしないシステムということになり 
そうです.

なお,Unicodeベースのピボット変換をしないシステムについては考えていな 
いので,何か考察すべきことがあればお願いします.
---
風間 一洋 (kazam****@mac*****)




Legacy-Encoding-talk-ja メーリングリストの案内
Back to archive index