XOOPSのメール送信で、Subjectが文字化けします。

対処法をご存知の方、またはサイトを教えてください。

  設定文字列:[XOOPS]承認が完了しました
  文字化け :[XOOPS]承認が完了しま$ 靴?

コードは、次のように記述し、EUC保存しており、本文は文字化けしません。
$xoopsMailer =& getMailer();
$subject = ”[XOOPS]承認が完了しました”;
$xoopsMailer->setSubject( $subject );
$xoopsMailer->send();

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/10/28 17:53:36
  • 終了:--

回答(1件)

id:shak No.1

shak回答回数84ベストアンサー獲得回数22005/10/28 21:09:48

ポイント50pt

sprintfを使えば大丈夫だった記憶があります。

$subject = sprintf(”[XOOPS]承認が完了しました”);

id:P-mako

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

でも、それは思い違いでしょう。

もともと、sprintfしていた箇所で文字化けしていたのですが、切り分けで未使用(文字列のみ)にしても化けている現象ですので。

試さずに否定するのもシツレイなので一応試しましたが、NGです。

2005/10/30 14:09:20
  • id:shak
    no title

    こちら側でテストすることなく回答してしまいすいませんでした。
    で、これは私体験談なんですが、もし本文をウェブでフォーム送信かつHTMLはSJISなどのエンコード、もしくは外部からの本文入力でエンコード形式が異なる場合、PHPソース内で記述した題名が一部文字化けする場合があります。これは私が経験した実際例です。
    私の場合は件名をカタカナのみで設定したときは文字化けは起こりませんでした。
    原因は、XOOPSはEUC基本なので、メール送信時はEUC->isoの処理を行っています。本文がSJISの場合は、SJISをEUC->isoエンコしてしまうので文字化けが発生します。
    本文のSJIS->EUCへのコンバート方法はmb_convert_encodingを使えばいいです。
    (本文が$strに入っているものと仮定して)
    $str = mb_convert_encoding($str, ”SJIS”, ”EUC-JP”);

    こちらの落ち度が多分にはあるのですが、もう少し環境など(どのように送信したか)などを最初である程度記述してもらえると、回答者も回答しやすいかと思います。
    以上です。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません