Data::Decode

| コメント(0) | トラックバック(0)
もうアホか、っていうくらいウェブから持ってきたデータを文字コードを解析してutf-8に正規化するみたいなコードを書いてきたので、いい加減飽きてきた。今使ってるモジュールでもそう言う事してくれるのでいいのだけど、なんかそれぞれのモジュールでそれぞれ別の書き方するのもなんだかなぁ・・・と思って、Data::Decode書いたですよ。

Data::Decodeは中身が完全にプラッガブルなので基本はインターフェースを提供するだけなのです。残りは中に指定するオブジェクトをつなげて行く感じ。

use Data::Decode; use Data::Decode::Chain; use Data::Decode::Encode::Guess; use Data::Decode::Encode::HTTP::Response; my $response = $ua->get($url); my $decoder = Data::Decode->new( strategy => Data::Decode::Chain->new( Data::Decode::Encode::HTTP::Response->new(), decoders => [ Data::Decode::Encode::Guess->new( encodings => [ qw(euc-jp sjis jis utf8) ] ), ] ) ); my $decoded_content = $decoder->decode( $response->content, { response => $response } );


HTTP::Response::Encodingとかもあるの知ってるけど、どういうふうにしたところで最後にもう一回デコードがちゃんとできてるのか調べるようなスクリプトばっか書いてるきがするのよねぇ。あとData::Decode::Encode::HTTP::ResponseはちゃんとHeaderとMETAタグ両方みてくれるよ!

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ