utf8::is_utf8

miyagawaさんが#catalystでいってたことやっと理解できた、きがする。

use Data::Dumper;

my $s = "H\x{c3}\x{ab}llo";

utf8::decode($s);

warn Dumper $s;        # => "H\x{eb}llo"
warn utf8::is_utf8($s) # => 1

だけれども

my $s = "H\x{eb}llo";

warn utf8::is_utf8($s) # => Warning: something's wrong

ということで、"\x{6751}\x{702c}\x{5927}\x{8f14}" などというData::Dumper表記でかならずしも utf-8フラグがたつわけじゃない。ということがいいたかったんだと思うのだけれど、

そもそも ë が latin-1 では "\x{eb}" だけど utf-8 では "\x{c4}\x{ab}" であるということを僕が認識してなかったせいでおかしなことになった。すみません。

by typester / at 2008-02-17T23:07:00 / perl / Comments(0)