UTF-8 フラグと戦う人へ - にぽたん研究所

September 21, 2005

このエントリーをはてなブックマークに追加
ひさびさに Blog を書いてみる。

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;
ふーむ。
こりゃ使えますな…。



とシラジラしく言ってみるテスツ。

nipotan at 03:01 | Comments(2) | TrackBack(3) | 技術 
このエントリーをはてなブックマークに追加

Trackback URL for this entry

Trackbacks

1.  Unicode::RecursiveDowngrade  [ naoyaのはてなダイアリー ]   September 21, 2005 12:20
UTF-8 フラグがどうもウザいという人向けにこんな CPAN モジュールがあるそうな。 「あるそうな」というか作ったのユーざますと軽くツッコミつつ、これはいいものです。Perl 5.8 における悩ましい問題であるところの UTF-8 フラグを、データ構造を再帰的に下って全部 off に...
2. UTF-8 Flagを落とそうとしてBugを見つけた話  [ 404 Blog Not Found ]   September 21, 2005 15:48
これじゃ、駄目。 UTF-8 フラグと戦う人へ - にぽたん研究所UTF-8 フラグがどうもウザいという人向けにこんな CPAN モジュールがあるそうな。 Unicode::RecursiveDowngrade
キーワード一覧もAmazonと楽天市場のWebサービスのとこだけUTF-8フラグがついて、商品検索の場合には文字が化けるという症状が出ていました。今のところは関連キーワードが乏しい時にだけW

Comments

1. Posted by BlogPetのにぽたん   September 23, 2005 10:46
シラジラと、広いメソッドをウザすればよかった?


2. Posted by 涼微   July 30, 2010 11:26
なるほど、こんな便利なものがあるのか。
制作者さんありがたや〜

Post a comment

Name:
URL:
  Remember info?: Rate: Face    Star