September 21, 2005
ひさびさに Blog を書いてみる。
UTF-8 フラグがどうもウザいという人向けにこんな CPAN モジュールがあるそうな。
Unicode::RecursiveDowngrade
hashref とか、arrayref とか複雑な構造になった変数 (たとえば XML や RSS を XML::Simple や XML::RSS 等で parse した構造) を、構造を変えることなく、値全ての UTF-8 フラグを一括で落としたい場合にベンーリ。
こんなんして使える模様。
こりゃ使えますな…。
とシラジラしく言ってみるテスツ。
UTF-8 フラグがどうもウザいという人向けにこんな CPAN モジュールがあるそうな。
Unicode::RecursiveDowngrade
hashref とか、arrayref とか複雑な構造になった変数 (たとえば XML や RSS を XML::Simple や XML::RSS 等で parse した構造) を、構造を変えることなく、値全ての UTF-8 フラグを一括で落としたい場合にベンーリ。
こんなんして使える模様。
use strict;
use XML::Simple;
use Unicode::RecursiveDowngrade;
use Data::Dumper;
my $ref = XMLin('hoge.xml'); # includes flagged UTF-8
my $rd = Unicode::RecursiveDowngrade->new;
$ref = $rd->downgrade($ref); # unflagged UTF-8
print Dumper $ref;
filter() メソッドと併用すると、一括で文字コード変換とかも出来るっぽい。
use strict;
use XML::Simple;
use Unicode::RecursiveDowngrade;
use Unicode::Japanese;
use Data::Dumper;
my $ref = XMLin('hoge.xml'); # includes flagged UTF-8
my $rd = Unicode::RecursiveDowngrade->new;
$rd->filter(sub {
Unicode::Japanese->new(shift, 'utf8')->euc
});
$ref = $rd->downgrade($ref); # unflagged EUC-JP
print Dumper $ref;
ふーむ。こりゃ使えますな…。
とシラジラしく言ってみるテスツ。