人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlで、 UTF-8 → ISO-2022-JP へ文字化けしないで変換する方法を探しています。(メール送信に使用します)

今は
use Encode qw(from_to);
from_to($self->{subject},"utf8",'MIME-Header-ISO_2022_JP');
from_to($self->{message},"utf8","iso-2022-jp");
で行っているのですが、どうしても「?」や「?」が文字化けしてしまいます。

(質問に不備がありましたらコメントへお願いします)

●質問者: fed
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ISO-2022-JP MESSAGE MIME Perl UTF-8
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●55ポイント

iso-2022-jp には本来?といった機種依存文字は含まれません。使わえない・使わないのが本来の形だと思います。

ISO-2022-JP - Wikipedia


一応 Encode.pm には iso-2022-jp-1 といった文字コードも定義されているようですので、そちらを試してみてはどうでしょうか。

Encode::JP - Japanese Encodings - search.cpan.org


あと、?についてはもうちょっとややこしいです。

UTF-8 に変換する前は Shift_JIS だったりしませんか?

◎質問者からの返答

iso-2022-jp-1にしてみましたが、だめでした・・・。

うーん、すべてUTF-8です。

?などは諦めれるとしても、?はなんとか乗り越えたいですね…


2 ● しおり
●15ポイント

「?」はISO-2022-JPで使える文字集合には無い文字なので、仕方がないのでは?

ISO-2022-JP - Wikipedia

◎質問者からの返答

準拠していなくてもいいので、Eメールで表示されるようにしたいのです。


【追記】

ISO-2022-JP-MSを用いることで、解決しました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ