質問: subject: =?iso-2022-jp?b?gyrcjf4knyrtpyclnyvzjvulksvlitwbkei=?= to: test@test.com status: ro x-uidl: 1358842469.4950.s323,s=1722 content-type: text/plain; charset=iso-2022-jp content-transfer-encoding: 7bit $b$^$7$m?'%7%s%u%)%k!<$n%q%s$k$c(b
回答: no1 のお礼にあるプログラムを見る限り jis でファイルに保存し、異なる環境 (utf8, shift_jis など) で表示しているに過ぎないのではないかと思います。確認方法として、ブラウザを利用することができます。xxx.txt などの名前で保存して、ブラウザで正常に表示されて文字エンコーディングが jis (iso-2022-jp) になっている、または文字エンコーディングを jis (iso-2022-jp) にしたら正常に表示された、のような現象であれば文字列として壊れてはいません。 文字列を変換するには、encode モジュールを利用するのが簡単かと思います。なお、'utf8' のところは環境に合わせて変更してください ('shiftjis', 'cp932', 'euc-jp' など)。 use encode; ... @$message = map { encode('utf8', decode('jis', $_)) } @$message;