家の3.4.2だと全然問題ないのだけど、職場のSQLite3で.mode csvで出力したら見事に日本語が化けた。化けたというかなんというか、"\343\201\246\343\201\231\343\201\250"みたいな感じで出力されてしまう。
use Encode;
use Devel::Peek;
my $text = 'てすと';
my $utf8 = decode('UTF-8', $text);
Dump $utf8;
これを実行したときの、
SV = PV(0x9a81834) at 0x9a2d66c
REFCNT = 1
FLAGS = (PADBUSY,PADMY,POK,pPOK,UTF8)
PV = 0x9adab48 "\343\201\246\343\201\231\343\201\250"\0 [UTF8 "\x{3066}\x{3059}\x{3068}"]
CUR = 9
LEN = 12
この"\343\201\246\343\201\231\343\201\250"なんだけど、オクテット?
print "\343\201\246\343\201\231\343\201\250"
で「てすと」と表示されるんだけど。
この文字列をファイルから読んで、ちゃんとした文字列(てすと)にしたかったのだけど、わからなかった。packすればよさそうな気がしたんだけど、、、
よくわかってないなぁ。