Re: JISコードのページ? ( No.5 )
日時: 2004/04/08 07:41
名前: sekino  <sekino@mtb.biglobe.ne.jp>

おはようございます
で、いったい何時まで起きていらっしゃるのですか?
新学期でしょう?

少しだけ手直ししました

なにをやっているかを簡単に

WinDrawChars、WinPaintCharsなどなどの、
画面にChars(つまり文字列)を描画するためのAPI関数をオーバリッドしています
1.EUCコードであることを前提に文字列をスキャンして、
 ShiftJISコードが出現したらEUCコードじゃない
 出現しなかったらEUCコードだと判断します
2.EUCコードだと判断したら、一時的な格納領域を確保して、
 もとの文字列をShiftJISコードに変換したものを格納
3.OSの関数に渡す文字列を、変換後の文字列に挿げ替えて文字列描画
4.一時的に確保した領域を開放しておわり

文字コードの判断は、
0x80から0xA0の間の文字コードが出現したらShiftJIS
出現しなかったらEUCとしています
完璧に判断できるわけではありませんが、
この範囲の文字コードは、大概のShiftJISでかかれた文字列には出現します
(全角ひらがなはこの範囲に該当しますので、確立は結構高いようです)

既知の不具合
半角カナのみの文字列はEUCと判断してしまいます

書き込みは未サポートです
多分、WebPROそのものにパッチを当てないと駄目だと思います

今は、使い勝手向上のために
EUCコードの判定を行うかどうかを切り替えるDAを書いています

ところで、
EUCコードが文字化けするブラウザ、
他にあったら教えてください
アプリケーション依存にすることも考えられますので

WebBrowserとXiinoはOKですよね