フォーラムへの返信

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 takuzy

    (@takuzy)

    IKEDA Yurikoさん。回答ありがとうございます。

    これを On にすると、他の部分で文字化けする可能性が大です。例えば、コメントフォームの入力が化けたりする可能性があります。特に、「半角カナのみ」を入れた場合に EUC-JP と誤認してしまい、それを UTF-8 に変換しようとして変なことが起こりそうです。

    上記ご指摘を受けましてmbstring.encoding_translation Onの状態で
    半角カナのみを使用して下記の動作検証をしてみました。
    ・PCからContactForm7で作成したメールフォーム画面に入力して送信されたメールを見る
    ・PCからWordpressの記事のコメント欄に入力してコメントを見る
    ・携帯からWordpressの記事のコメント欄に入力してコメントを見る
    ・携帯からContactForm7のメールフォーム画面に入力して送信されたメールを見る
    結果はすべてにおいて、文字化けしたり不具合が起きることはありませんでした。

    自動変換に頼らず、フォームを受け取る部分で「is_mobile() が true ならば文字コードを変換する」というコードを追加した方が安全です。

    当方、PHPはやったことがなくまったくの素人です。
    具体的にはどこのファイルにどんなコードを入れればいいのでしょうか?
    大変恐れ入りますが、ご教授いただければ幸いです。
    よろしくお願いいたします。

    トピック投稿者 takuzy

    (@takuzy)

    tenpuraさん。回答ありがとうございます。
    ご指摘いただいた.htaccessのmbstring.encoding_translation Onの記述ですが
    On → Offにしてみたところ文字化けが再現しました。
    (携帯からContactForm7のメールフォーム画面に入力して送信したメールが文字化けします。)
    現在はOnに戻しています。
    今後は教えていただいたコンフリクトの可能性とリスクを意識しておこうと思います。
    ありがとうございました。

    トピック投稿者 takuzy

    (@takuzy)

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

    Takayuki Miyoshiさん、IKEDA Yurikoさん
    回答ありがとうございました。
    Takayuki Miyoshiさんからいただいた回答

    この状況から推測すると mbstring.http_input に関係がありそうな気がします。

    をヒントに調べたところ.htaccessに下記を追記することで解決しました。

    <IfModule mod_php4.c>
    php_flag output_buffering Off
    php_value output_handler none
    php_value default_charset UTF-8
    php_value mbstring.language japanese
    php_flag mbstring.encoding_translation On
    php_value mbstring.http_input auto
    php_value mbstring.http_output UTF-8
    php_value mbstring.internal_encoding UTF-8
    php_value mbstring.substitute_character none
    </IfModule>

    大変助かりました。
    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)