運営するサイトから自動的に送られるメールの題名が文字化けして困っています。

アルファベットや記号になるのではなく、縲繝槭う繝輔・繝・と中国漢字(?)になります。
対策をご教示いただけませんでしょうか。

サイトは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

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2009/04/03 01:15:42
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:koujirou6218 No.1

回答回数597ベストアンサー獲得回数47

ポイント40pt

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

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

サイトは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にエンコードすることでほぼ回避できると思います。


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

id:Mori-M

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

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

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

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

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

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

2009/04/02 13:45:45

その他の回答1件)

id:koujirou6218 No.1

回答回数597ベストアンサー獲得回数47ここでベストアンサー

ポイント40pt

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

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

サイトは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にエンコードすることでほぼ回避できると思います。


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

id:Mori-M

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

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

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

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

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

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

2009/04/02 13:45:45
id:tezcello No.2

回答回数460ベストアンサー獲得回数69

ポイント35pt

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

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

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

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

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

id:Mori-M

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

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

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

2009/04/03 01:14:00
  • id:Mori-M
    BASE64にエンコードにしたところ、問題解決いたしました。

    みなさん、ありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません