MTWeather プラグインをバージョンアップ ver 1.09

MTWeather 1.0 系になってから Perl 5.6 な環境で utf8 を使われている場合、文字化けが発生して泣く泣くプラグインを外した方も多いと聞きます。本当に申し訳ありません。ちょっと前に、「UTF-8 フラグと戦う人へ - にぽたん研究所」なる記事がありまして、Perl のバージョンにかかわらず UTF-8 フラグを旨く処理するモジュール - Unicode-RecursiveDowngrade の存在をしりました。

いつか、MTWeather にいれなきゃと思いつつ時間がとれず、本日めでたく時間がとれて Unicode::RecursiveDowngrade を使って書き換えてみました。文字化けで諦めた方は再チャレンジしてみて下さい。逆に、入れ替えて文字化けしたって方は、utfflag オプションの 0/1 を逆にしてみて下さい。

- スポンサーリンク -

ここから先は、Perl 使いの方以外は関係ありませんが、備忘録です。

開発したご本人のコメントによると、

UTF-8 フラグがどうもウザいという人向けにこんな CPAN モジュールがあるそうな。

Unicode::RecursiveDowngrade

hashref とか、arrayref とか複雑な構造になった変数 (たとえば XML や RSS を XML::Simple や XML::RSS 等で parse した構造) を、構造を変えることなく、値全ての UTF-8 フラグを一括で落としたい場合にベンーリ。

だそうで、変数の構造にかかわらず、階層をたどって全部 UTF-8 フラグを一括処理してくれるところが素敵です。実際に UTF-8 フラグを落とすコードは

pack('C0A*', shift)

とたった一行です。今後いろいろなところでお世話になりそうなモジュールです。

- スポンサーリンク -