MIME::QuotedPrintを使う
QuotedPrintにエンコード
$ echo "エンコード文字" | perl -M'MIME::QuotedPrint' -e 'while (<STDIN>) { print encode_qp($_); }'
=E3=82=A8=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=89=E6=96=87=E5=AD=97
QuotedPrintのデコード
$ echo "=E3=82=A8=E3=83=B3=E3=82=B3" | perl -M'MIME::QuotedPrint' -e 'while (<STDIN>) { print decode_qp($_); }'
エンコ
Base64操作はコマンドで
Base64は、Linuxのcoreutilsに含まれているので素直にそれ使う。方が楽だと思う。
Base64エンコード
$ echo "べーすろくよん" | base64
44G544O844GZ44KN44GP44KI44KTCg==
Base64デコード
$ echo 44G544O844GZ44KN44GP44KI44KTCg== | base64 -d
べーすろくよん
ついでにヘッダーで使うエンコードのフォーマット
=?{charset}?{B or Q}?{Encoded String}?=
例.
=?utf8?B?44G544O844GZ44KN44GP44KI44KTCg==?=
結果.
「べーすろくよん」と表示される。
ワンライナー
っていいね!