桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

続・マルチバイト文字列 (1)

d:id:youandi:20070120#p1
ふとWindows上ではあまりこういった問題を気にした事がないなぁと考えていたら、そもそも入力画面でガードが掛かっているからだと気が付いた。
Microsoftのテキスト入力コントロールは全角文字でもちゃんと入力文字数制限が効くので問題が発生しておらず、今回wxGTK(wxWidgets)のwxTextCtrlの制御ではASCII入力では文字入力制限は効くが、全角文字入力では効かないのが原因か。そういう意味では自分はプログラムの修正方法を間違えているなぁ。入力コントロールでガード掛けていれば修正量は結構減ったはずだな。
またUTF-8ロケール時の全角文字列が何バイトになるかをちゃんと調査していなかったのも痛い。

Unicodeを選択しない理由
一方、Windows以外の環境ではUnicodeを有効にしてconfigureする積極的な理由は(今のところ)、筆者には見当たりません。
また、Windows環境でも、Unicodeを利用することにすると、 Windows 9x系を切り捨てざるを得ないという問題があります。これらのOSでは、必要なUnicode APIなどが不足しているためです。

上記サイトの内容を鵜呑みにしてしまい、ちゃんと事前に評価しなかったのも原因か。

文字コード超研究

文字コード超研究

上記の本でUTF-8についてお復習いしないとな。