Search
Categories
Articles
Rainmeter関連
ファイル置き場
お知り合いなど

スポンサーサイト

--.--.-- | スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Rainmeter-dev] TwitterのTLが文字化けする

2010.08.17 | Rainmeter-dev // Issue/互換性問題やバグ修正

21 Comments

TwitterでRainmeterについて検索してみると、TwitterのTLを表示させると文字化けするっていうつぶやきがちらほらと見受けられます。
RainmeterでTwitterのタイムラインを取得すると、「はじめまして!」のような文字列が表示されてしまいますが、これは数値文字参照と言って、文字を10進数または16進数文字列で表しています(これは「はじめまして!」を表す)。本来は表示前に元の文字へと戻してやる必要があり、ブラウザなどではその処理をしてから表示していますが、RainmeterのWebParserにはその処理が入っていません(英語圏では変換して使うような文字があまりなく、そう問題にならないので)。

この数値文字参照を元の文字に戻す処理を加えたWebParserを作ってみたので、下へ置いておきます。変なことはしてないので、1.0でも使えると思います。興味のある方は試してみてください。

Rainmeter 1.3にこの変更を取り込んだので、公開終了しました。
デフォルトでは有効化されませんので、スキン製作者側または使用者側で適宜設定を行ってください。

適用方法)
WebParserを使っているMeasureで、かつ"StringIndex="を設定してあるものに、"DecodeCharacterReference=1"を設定してください。

例)

[Feed1.mLink1]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=[Feed1]
DecodeCharacterReference=1
StringIndex=2

設定値)

0 : なにもしない (デフォルト動作)
1 : 数値文字参照と実体参照の両方をデコードする
2 : 数値文字参照のみをデコードする
3 : 実体参照のみをデコードする

※Substituteの設定値によっては意図しない結果になることもありますので、適宜調整してください。
(例えば、結果の文字列からダブルクォーテーションを消すためにSubstitute=""":""を指定してあった場合、DecodeCharacterReferenceを定義することによって&quot:は"に置き換えられてしまうため、消されずに残ってしまいます)

また、この件とは関係ありませんが、TwitterのBASIC認証が廃止されたために、TLが取得できなくなって困った方もおられると思います。これに関しては、GnometerがSuperTweetを介しての取得に対応していますので、そちらのコードを参考にしてみてください。

■更新履歴
2010.12.16 : 公開終了しました。
2010.08.17 : Rainmeter 1.3 beta r501 をベースに作成し直しました。処理も少しだけ変えているので、r320版と文字処理の動作が違っていたら教えてください。

続きはコード詳細。

続きを読む »

スポンサーサイト

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。