2007 . 10 . 23

EUC-JPのページからの文字列取得


RainmeterのWebparser.dllを使ったHTMLからの情報取得スキンを作り始めた頃から、悩みの種だったことがあります。それはEUC-JPのページからの2バイト文字の取得表示がうまくいかないというものです。


以下のマイクロソフトのリファレンスにもあるように、EUC-JPのCodePageは「51932」と定義されているはずですが、Rainmeterの設定ファイル上で「CodePage=51932」と指定しても動作しません。
Character Set Recognition

以前から、いろいろ試してみましたが結局解決できず、半ばあきらめていましたが、最近になってその問題がほぼ解決されました。

それはCodePageに「51932」ではなく「20932」を指定するというものです。
なぜ、「51932」ではダメで「20932」なのかということを説明するには、あいにく知識不足なため今回そのことについて深くは取り上げませんが、結果的にこれで今のところ問題なく動作するようです。

ここで1つ、上記で「ほぼ」とか「今のところ」と言うようなあいまいな表現を使ったのには理由があります。
「20932」を「51932」の代替に使用している訳ですが、この「20932」とはマイクロソフト版 EUC-JPであり、EUC-JPと完全な変換性がサポートされているわけではなく、一部変換できない文字もあるそうですので、100%完全な解決方法とはなりませんが、暫定的な解決策として問題ない方法ではないかと思っています。

以下の設定ファイルは今回のテストサンプルとして作成したもので、チェックにどうぞ。
Yahoo!ニュース - 主なトピックス

[ご注意]
今回のケースはWindows2000sp4という私的PC環境での問題とその解決方法についての記述ですので、他の環境でも同様かということは把握していませんので、あしからず。



#1
2007 . 10 . 27  02 : 09 AM
BOLT

はじめまして。
自分もEUC-JPのページの情報をうまく表示できなくて困ってました。
確かに20932で表示されるようになりましたね。OSはWindowsXPsp2です。
これでスキン作成の続きができるw
素晴らしい情報ありがとうございました。

#2
2007 . 10 . 27  07 : 19 PM
kenz0

こちらこそ、WinXPでの動作報告例として参考にさせて頂きます。
いいスキンが出来るといいですね☺