http://search.cpan.org/perldoc?Email%3A%3AStuffer
http://search.cpan.org/perldoc?Email%3A%3AMIME
Email::Stuffer & Email::MIME を読んでたら、Email::MIME では、encoding に base64 or quoted-printable or 8bit を指定できるらしい。
quoted-printable (いわゆる QP encoding)は利用したことがなかったので、お試し。
quoted-printable encodingとは?
BASE64との違い等と合せて、ググった方が理解しやすいと思いますので、 ここでは記載しません。
MIME::QuotedPrint
perlで QP encoding するには、MIME::QuotedPrint を利用するよう。 しかも、標準module
http://perldoc.perl.org/MIME/QuotedPrint.html
$ corelist MIME::QuotedPrint Data for 2014-10-01 MIME::QuotedPrint was first released with perl v5.7.3 $ corelist MIME::Base64; Data for 2014-10-01 MIME::Base64 was first released with perl v5.7.3
MIME::QuotedPrint のお試し
#!/usr/local/bin/perl use strict; use warnings; use utf8; use Encode; use MIME::QuotedPrint; main(); sub main { for my $char_org ('1','A','+','=','あ','あA','あい','α','㈱'){ my $char_org_utf8 = Encode::encode('utf8',$char_org); my $encoded = MIME::QuotedPrint::encode_qp( $char_org_utf8 ); my $decoded = MIME::QuotedPrint::decode_qp($encoded); print join(" -> ", $char_org_utf8, $encoded, $decoded),"\n\n"; } }
↑こう書くと、↓こう表示されます。
$ ./test.pl 1 -> 1= -> 1 A -> A= -> A + -> += -> + = -> =3D= -> = あ -> =E3=81=82= -> あ あA -> =E3=81=82A= -> あA あい -> =E3=81=82=E3=81=84= -> あい α -> =CE=B1= -> α ㈱ -> =E3=88=B1= -> ㈱
「encode_qp()」された文字列の最後には、改行文字が追加されるみたい。