perl MIME エンコード/デコード

  • CentOS6

Postfixで文字列チェックしてた時のワンライナー
絶対覚えていない自身があるのでmemo。
perlのバージョンによっては変換できない模様。少なくともPerl v5.8以上は必要ぽい。

# バージョンチェック
[root@dev tmp]# rpm -q perl
perl-5.10.1-119.el6_1.1.i686
# エンコードモジュールのバージョン
[root@dev tmp]# head /usr/lib/perl5/Encode.pm 
# $Id: Encode.pm,v 2.35 2009/07/13 00:49:38 dankogai Exp $

# エンコード
[root@dev tmp]# perl -Mutf8 -MEncode -le "print encode('MIME-Header-ISO_2022_JP', '出会い');"
=?ISO-2022-JP?B?GyRCPVAycSQkGyhC?=

# デコード
[root@dev tmp]# perl -MEncode -le "print decode('MIME-Header','=?ISO-2022-JP?B?GyRCPVAycSQkGyhC?=')";
Wide character in print at -e line 1.
出会い