Perl で、文字コードの自動判定をする

たとえば、LWP::UserAgent で取得した RSS (= XML ファイル) の文字コードの自動判定 (エンコーディングの自動判定) を行うには、以下のようにする。

#!/usr/bin/perl use Encode::Guess; use LWP::UserAgent; use HTTP::Request; my $url = 'https://perltips.twinkle.cc/index.rdf'; my $proxy = new LWP::UserAgent; my $req = new HTTP::Request(GET=>$url); my $res = $proxy->request($req); my $xml = $res->content; my $enc = guess_encoding($xml, qw/euc-jp shiftjis 7bit-jis utf8/); ref($enc) or die "Can't guess: $enc"; # 自動判定に失敗したときのエラー処理 $xml = decode($enc->name, $xml); # utf8 で保存 ...