PHPの設定で「mbstring.encoding_translation」(HTTP入力文字コード自動変換)
というのがありますが、どういった状況で変換の必要があるのでしょうか。
変換が発生するケースを教えてください。
また、この「mbstring.encoding_translation」の設定値が「Off」(無効)の場合
手動でHTTP入力文字コードを変換する必要があるかと思いますが、
例えば下記のようなコードで変換した場合、変換元と変換後の文字コードが同じ場合、
二重に変換されることはないのでしょうか。
mb_convert_variables(mb_internal_encoding(), 'SJIS-win', $_POST);
その他、「mbstring.encoding_translation」は「On」にした方がよいという意見や、
WebサイトでのHTTP入力処理の定石みたいな情報も歓迎いたします。
どういった状況で変換の必要があるのでしょうか
たとえば、携帯サイトにFORM入力を用意したような時、携帯ブラウザから送られてくる文字コードはシフトJISになっており、PHPスクリプトがEUC-JPで書かれている場合が、それに当たります。
二重に変換されることはないのでしょうか
ありません。
WebサイトでのHTTP入力処理の定石みたいな情報も歓迎いたします
私は下記のような設定をお勧めします。
詳しいことは「ページ間での文字化けを解消する」をご覧ください。