PoCo::Client::HTTP decodes content (w/o Permission)

| コメント(0) | トラックバック(0)



こりゃきづかなんんだ。PoCo::Client::HTTP 0.80でこんなんでてる。



2006-10-25 06:55:14 (r294) by rcaputo
lib/POE/Component/Client/HTTP.pm M; t/14_gzipped_content.t A; MANIFEST
M; Makefile.PL M; lib/POE/Component/Client/HTTP/Request.pm M

Apply Rob Bloodgood's patch to transparently decode non-streaming
content before it's returned. This gives us support for gzip
compressed content. Resolves long-standing rt.cpan.org ticket 8454.

PoCo::Client::HTTPでGETしまくってたら、一部のサーバーのどの日本語ページも$res->content_typeの文字コードと実際の文字コードが合わなくておかしいと思ってたんだけど、こういうことだな?多分0.80以降のXangoベースのアプリも壊れる予感。


うぅ、こいつは小さな親切、大きなお世話の類いだな・・・GunghoではしょうがないのでPOEエンジン内で、またエンコードしなおすという荒技を使う事にしてみる。



# Work around POE doing too much for us.
if ($POE::Component::Client::HTTP::VERSION >= 0.80) {
if ($res->content_encoding) {
my @ct = $res->content_type;
if ((shift @ct) =~ /^text\//) {
foreach my $ct (@ct) {
next unless $ct =~ /charset=((?!utf-?8).+)$/;
my $enc = $1;
require Encode;
$res->content( Encode::encode($enc, $res->content) );
last;
}
}
}
}

これ、オプションにしてくれればいいのに。


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)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ