- ベストアンサー
メールが文字化けしてしまう
pwebcart http://www.phpweb.jp/pwebcart/ というフリーのPHPスクリプトを使用させていただいてます ショッピングカートです 今まで問題なく使わせていただいてたのですが このカートで注文し→注文内容の確認のメールが文字化けするようになってしまいました (半角のアルファベット・数字はOK 2バイト文字が化けてしまいます) とくに設定の変更もしていないのに途中からこのような現象が起きることあるんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ソースを見てみましたが、メール本文の文字エンコーディングをmb_internal_encoding()で取得した値に変換していますね。 何があったかは知りませんが、この設定ディレクティブの値が変わったのではないかと予想されますので、影響を与える設定ファイル(php.ini、.htaccessなど)の設定を確認したほうがよいかと思います。
その他の回答 (1)
- UmJammer
- ベストアンサー率58% (115/196)
ANo.1です。 mbstring.internal_encodingの値はどうなっていますか?phpinfo()で確認できます。 それとソースの文字エンコーディングは何にしていますか。 試していないので断言できませんが、おそらくこのスクリプトは内部エンコーディングがSJISでmbstring.internal_encodingもSJISでないと正しく動かないのだと思います。
お礼
UmJammerさんこんばんは! 2度にわたってありがとうございますm(__)m どうやらサーバのデフォルトがUTF-8になっているのか php_value mbstring.language Japanese php_flag mbstring.encoding_translation On php_value mbstring.script_encoding SJIS php_value mbstring.internal_encoding SJIS という.htaccessをカートのフォルダにアッップしたら 文字化けの問題が解消しました これで根本的な解決になっているのか自信がありませんが 文字化けして届くメールのエンコードが UTF-8からiso-2022-jpになりましたので これで良いのかなぁ…と確認しているところです(笑)
お礼
ご丁寧に回答いただきましてありがとうございます! にも関わらずレスが遅くなり申しわけありませんm(_ _;)m 現状ですが何も進展していません… もともとこのスクリプトは私のような素人でも わずかな設定でカートが作れるというもので >mb_internal_encoding() という箇所もとくに設定上変更などもしておりません スクリプトの値がなんらかの原因で変ってしまったのかと思い また新しいスクリプトをアップロードし直してみたのですが 文字化けの現象は変りません phpスクリプトの本体の属性を705という指示なのですが これを755に変更すると一時的に文字化けが直るのです (…が何度か試すうちにまた文字化けしてしまう) 恥ずかしながらこれは何を意味しているのか私にはわかりません。。 >(php.ini、.htaccessなど) このカートの設定で.htaccessの設定はしていません またphp.iniという設定ファイルもありません