どーせ暇だから、ということで、矢張りCSTRWクラスのチェックを兼ねて、「Win32 + C++プログラミング」定番のメモ帳のようなエディターを作ってみました。まぁ、文字列を入力、表示してファイル入出力するだけのプログラムなのでBCCSkeltonを使えば本当にチャチャッとできますが、それでは面白くないので「BCCSkeltonは使うけど、1バイト文字は見える限り使わない"char"縛り」を入れてプログラミングしてみました。またその際にBCCSkeltonクラスで使うものは皆ワイド文字化してみよう、ということで、既にFileNameCleanerで作成した
CSTRW.h
CDLGW.h
に加え、今回
CWNDW.h
CFONTW.h
CDLGW.h
CCTRLW.h
CSBARW.h
を作ってみました。
その結果、こんなワイド文字エディター(Wide Characters EditorーWCEditor)ができました。
扱えるUTFは、
Windows御用達のUTF-16はBOMが必然、WEB御用達で現在風靡しているUTF-8はBOMありとBOMなしがあるというCSTRWの仕様通りです。
上記のように、この3つのUTFパターンで色々と読み書きしましたが、一応正常にできるようです。そのついでに前に作ったASCIIベースのRTEditor(Rich Text Editor)でUTF-16、UTF-8ボム付、UTF-8ボム無を読んでみると...
一番上がUTF-16で文字化けは当然、次がUTF-8ボム無でこれもASCII文字以外は文字化けですが、なんと(!)UTF-8のボム付はASCIIエディターでそのまま読めることが分かりました。(これだからUTF-8が一世風靡するんですね。)
未だ次のネタが仕入れ前なので、駄文を書きながらこのワイド文字化BCCSkeltonを使ったWCEditorの解説でもしてゆきましょう。


