シングルバイトな文字列にもutf8フラグは立つ

  • 投稿日:
  • by
  • カテゴリ:
1234 とか asdf みたいなシングルバイトな文字列でもデコードするとちゃんと utf8 フラグが立って、文字連結するとおかしくなる。
use strict;
use warnings;
use Data::Dumper;
use Encode;

my $single = "1234";
my $decoded = decode_utf8($single);

print "$single:ほげ\n";
print Dumper "$single:ほげ";

print "$decoded:ほげ\n";
print Dumper "$decoded:ほげ";

実行すると

1234:ほげ
$VAR1 = '1234:ほげ';
1234:ほげ
$VAR1 = "1234:\x{e3}\x{81}\x{bb}\x{e3}\x{81}\x{92}";

シングルバイトでもちゃんとしないと駄目という話。