JIS変換の続報#2

いきなりつまずいた。
.NETでの50220変換と、WideCharToMultiByteでの50220変換で結果が違うじゃん。
で、何が違うのかというと、WideCharToMultiByteだと、補助漢字領域が使えてる。
ESC$(Dとか含むJISファイルなんて、真魚ぐらいでしか読み込めないって。
そんなファイルを書き出しても意味はない。

さて、真魚は7bitルールを守る変換に移行するのは決定だが、
WideCharToMultiByteが使えないので、それ以外でやるしかないな。
そこで思いつくのは、.NETでの変換をテーブル化して持つ方法だ。
現在のテーブルから、7bitルールに従ってない部分だけを変更すればいい。
これをやるしかないな。
そのテーブルを作っちゃえば、.NETへ移植するにもテーブルを使うから、
動作の差異を考慮せずにそのまま移植できることになるから都合がよいし。

それにしても.NETの文字コード変換はどこに依存してるんだろうな。
WideCharToMultiByteではCP51932もうまくいかないし、
.NETでの文字コード変換を直接呼び出したくても、どこを利用すべきかわからない。
ひょっとして.NETって、すごいんじゃないか?
やっぱりVBがこれからすごくなるんじゃないか?

追記:
.NETによる変換でも、7bit化出来る外字と出来ない外字があり、
出来ない外字はそのまんま8bitではき出されていることに気がついた。
つまりテーブル化して持つべきはSJISで0xFA~0xFCまでの狭い範囲だった。

たぶん関連のある記事:

コメントは終了しています。