utf8フラグがよくわかっていない件
自分が文字コードについてわかっていないっぽい。
とあるサイト*1でスクレイピング*2した結果をほげほげしようとしたら、
以下のような感じになった。
スクリプト
# テストの一部 { use Data::Dumper; # 最初のスクレイピング文字列 diag "str :",Dumper($rs->{link}->{field}); # utf8フラグONOFF diag "is_utf8:",utf8::is_utf8($rs->{link}->{field}); # Encode::decode_utf8した結果 diag "str decode_utf8:",Dumper(decode_utf8($rs->{link}->{field})); utf8::decode($rs->{link}->{field}); # utf8::decodeした結果 diag "str utf8::decode:",Dumper($rs->{link}->{field}); }
結果
# str :$VAR1 = "\x{e5}\x{85}\x{a8}\x{e5}\x{9b}\x{bd}\x{e4}\x{b8}\x{80}\x{e6}\x{8b}\x{ac}"; # is_utf8:1 # str decode_utf8:$VAR1 = "\x{e5}\x{85}\x{a8}\x{e5}\x{9b}\x{bd}\x{e4}\x{b8}\x{80}\x{e6}\x{8b}\x{ac}"; # str utf8::decode:$VAR1 = "\x{5168}\x{56fd}\x{4e00}\x{62ec}";
同じようなことをやっているつもりなのに結果が異なる。
それに自分が求めている結果は utf8::decode の結果なんだよなー。
うーん、勉強不足かな