• 締切済み

フォームメールの文字化け

こんにちは。 フォームメールで携帯宛にメールを送ると、docomoの件名だけが文字化けします。 途中までは正常な表示で、後半文字化けしたり要らない文字が最後に入ったりという状態です。 au、softbankやPC宛には正常に送れているのですが… エンコーディングは↓こんな感じです mb_language("Japanese"); mb_internal_encoding("EUC-JP"); $subject = mb_convert_encoding($subject,"JIS", "EUC-JP"); 考えられる原因や解決方法などありましたら 教えて下さい。 よろしくお願いします。

みんなの回答

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.2

DoCoMo の携帯は持っていないので未確認ですが、標準的なメールソフトウェアでのエンコードで DoCoMo 宛に送って文字が化けないのであれば、後述する方法で変換すればよろしいかと思われます。 > $subject = mb_convert_encoding($subject,"JIS", "EUC-JP"); この場合は本文などに使われるエンコードであり、「テスト」という文字列は \033$B%F%9%H\033(B ※ \033 は ESC という一文字の制御文字です。 のように変換されます。 メールヘッダに漢字などが含まれる場合は「mb_encode_mimeheader」を使ってエンコードします。 ちなみに「テスト」という文字の場合はこのようになります。 =?ISO-2022-JP?B?GyRCJUYlOSVIGyhC?= 変換には mb_language("Japanese"); mb_internal_encoding("EUC-JP"); $subject = mb_convert_encoding($subject,"ISO-2022-JP", "EUC-JP"); $subject = mb_encode_mimeheader($subject, "ISO-2022-JP", "B"); とされるほうがよろしいと思われます。

koke29
質問者

お礼

返答ありがとうございます 質問の後で色々試して、「件名はエンコーディングをしないことで解決」という微妙な結果に落ち着きました笑 mb_language("Japanese"); mb_internal_encoding("EUC-JP"); ここまでで なんだかうまく行くようになりました x415f484f様が書いて下さった後述の方法試してみましたら 件名が =?ISO-2022-JP?~ という感じで表示されちゃってました 毎回文字コードには一苦労してます コンバートの方法とか文字コードとかが色々ありすぎて混乱するんですよねぇ またわからないことがありましたら 相談させて頂きます ご意見下さった方々、ありがとうございました♪

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

EUC-JPでなく、eucjp-winにすれば?

koke29
質問者

お礼

返答ありがとうございます 質問の後で色々試して、「エンコーディングをしないことで解決」という 微妙な結果に落ち着きました笑 eucjp-win というのもあるのですね 後ほど試してみたいと思います

関連するQ&A

専門家に質問してみよう