どーせ暇だから、ということで、矢張り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の解説でもしてゆきましょう。