2012年10月23日火曜日

PerlでQuotedPrintをデコード/エンコードするワンライナー

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==?=

結果.
「べーすろくよん」と表示される。

ワンライナー

っていいね!

0 件のコメント:

コメントを投稿