Encode::find_encoding()の使い方
弾さんがEncode::find_encoding()の使い方を解説していました。
404 Blog Not Found:perl tips - Encodeを速く使う方法
Encodeでは文字コード名の名前解決もしているからだ。sjisも
Shift_JIS"も同じに扱うためには、当然なんらかの形でこれらが同じで
あることを判定しなければならない。それを担うのが、
Encode::find_encoding()だ。
実はこのEncode::find_encoding()、返すのは正規化された名前ではなく
オブジェクトである。そして、実のところこのオブジェクトこそが実際の
(en|de)codeを行うtranscoderなのである。よって最適解は、以下のとお
りとなる。
my $enc = find_encoding("Shift_JIS");
for my $i (0..0xffff) {
$enc->encode($str);
}
Shift_JIS"も同じに扱うためには、当然なんらかの形でこれらが同じで
あることを判定しなければならない。それを担うのが、
Encode::find_encoding()だ。
実はこのEncode::find_encoding()、返すのは正規化された名前ではなく
オブジェクトである。そして、実のところこのオブジェクトこそが実際の
(en|de)codeを行うtranscoderなのである。よって最適解は、以下のとお
りとなる。
my $enc = find_encoding("Shift_JIS");
for my $i (0..0xffff) {
$enc->encode($str);
}
こんなに速いとは知らなかったです。以後使えるときは使います。
▼関連記事
[O] HTTP::Response::Encoding
投稿者:としのり 日時:23:59:59 | コメント | トラックバック() |
