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

運営するサイトから自動的に送られるメールの題名が文字化けして困っています。
アルファベットや記号になるのではなく、縲繝槭う繝輔・繝・と中国漢字(?)になります。
対策をご教示いただけませんでしょうか。

サイトはUTF-8エンコーディングです。
日本のヤフーメールで受信するとJapanese(EUC)エンコーディングなため毎回(題名だけ)文字化けします。
米国ヤフーメールで受信するとUTF-8エンコーディングなためか題名の文字化けはありません。
次のフリーメールアカウント全てに対応できるようにしたく、そのためには三通りのエンコーディングに対応していなければいけないようです。何か取れる処置はありませんでしょうか?

Yahoo Japan/ Infoseek Japan: Japanese(EUC)
MSN Japan/ AOL Japan/ Gmail Japan/ Livedoor: Japanese (UTF-
Nifty Japan/ au One/ Excite Japan: Japanese (Shift-JIS)

宜しくお願いいたします。

(こちらも見てみましたが、記号に化けるという点で違った問題なのではと思い質問させていただきました:http://q.hatena.ne.jp/1232770555)

●質問者: Mori-M
●カテゴリ:インターネット ウェブ制作
✍キーワード:AOL au one EUC Excite Gmail
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● koujirou
●40ポイント ベストアンサー

アルファベットや記号になるのではなく、縲繝槭う繝輔・繝・と中国漢字(?)になります。

文字化けの表現方法は、機種の環境によって様々なので記号であれ感じであれ正常に表示できていない場合は同一の文字化けと同じです。

サイトはUTF-8エンコーディングです。

日本のヤフーメールで受信するとJapanese(EUC)エンコーディングなため毎回(題名だけ)文字化けします。

米国ヤフーメールで受信するとUTF-8エンコーディングなためか題名の文字化けはありません。

次のフリーメールアカウント全てに対応できるようにしたく、そのためには三通りのエンコーディングに対応していなければいけないようです。何か取れる処置はありませんでしょうか?

リンクにも記載されていますが、日本語のメールはISO-2022-JP(JIS)でエンコードすることが暗黙の了解になっています。これは、アメリカに送ろうが韓国に送ろうがイギリスに送ろうが変わりません。

殆どのメールクライアントにはISO-2022-JPをエンコードする機能が付いているので文字化けはしないと思います。

もしかして日本語以外を送信しようとしていますか?

日本語メールを送る場合はUTF-8を利用しません。


メールヘッダのContent-typeを確認してください。

何になっていますか?


おそらく、ISO-2022-JPになっていると思いますがこの場合ですと件名・本文ともにUTF-8でエンコードされておりヘッダ情報がISO-2022-JPになっているため文字化けを発生させていると思います。

お使いのメール配信システムが不明なため的確なアドバイスはできませんが、Perl系であればjcode.plなどのライブラリーを利用して本文と件名を変換する必要があります。

厳密に言えば、これでも件名だけ文字化けする可能性があります。BASE64にエンコードすることでほぼ回避できると思います。


フリーのメールシステムをお使いであれば教えてください。

◎質問者からの返答

ご回答、ありがとうございます。

使っているソフトウェアのバックエンドにヘッダーをBASE64にエンコードする、というオプションを発見しました。

こちらを使えば解決しそうです。

現在サイトに問題がありアクセスできないので、直り次第試してみます。

他にも、いろいろと御教示いただきありがとうございます!

試し次第、再度ご連絡させていただきます。


2 ● tezcello
●35ポイント

題名だけ文字化けするとすると、rfc に則ったヘッダを送っていないのでは無いでしょうか?

そういう手抜きのメール送信スクリプトサンプルってけっこう多いですよね。

Content-Type が出てるからって、ヘッダを直で書いてたり...

http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html

http://www.atmarkit.co.jp/fnetwork/rensai/netpro04/netpro01.html

◎質問者からの返答

ありがとうございます。問題は一番目にいただいた回答が原因であったようです。

BASE64にエンコードにしたところ、問題解決いたしました。

真にありがとうございます!

関連質問


●質問をもっと探す●



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