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 で保存

...
トラックバック URL: https://perltips.twinkle.cc/trackback/31
Posted on 2005-11-30 by yas |