今は
use Encode qw(from_to);
from_to($self->{subject},"utf8",'MIME-Header-ISO_2022_JP');
from_to($self->{message},"utf8","iso-2022-jp");
で行っているのですが、どうしても「①」や「~」が文字化けしてしまいます。
(質問に不備がありましたらコメントへお願いします)
iso-2022-jp には本来①といった機種依存文字は含まれません。使わえない・使わないのが本来の形だと思います。
一応 Encode.pm には iso-2022-jp-1 といった文字コードも定義されているようですので、そちらを試してみてはどうでしょうか。
Encode::JP - Japanese Encodings - search.cpan.org
あと、~についてはもうちょっとややこしいです。
UTF-8 に変換する前は Shift_JIS だったりしませんか?
準拠していなくてもいいので、Eメールで表示されるようにしたいのです。
【追記】
ISO-2022-JP-MSを用いることで、解決しました。ありがとうございました。
iso-2022-jp-1にしてみましたが、だめでした・・・。
うーん、すべてUTF-8です。
①などは諦めれるとしても、~はなんとか乗り越えたいですね…