- ベストアンサー
mbstring.http_output = UTF-8 としているのにSJISで出力されているようである
php.iniでmbstring.http_output = UTF-8 としました。 テキストエディタで <HTML> <BODY> <?PHP echo "教えて"; ?> </BODY> </HTML> というファイルをつくり、sjisで保存し、test.phpと名づけました。 このファイルをブラウザで表示させる際、エンコードをUTF-8とすると文字化けしてしまいます。 SJISだとちゃんと表示できます。 mbstring.http_output = UTF-8としている以上UTF-8に変換されるわけではないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
mb_internal_encodingをキチンとsjisで指定した上で、ob_startしてください(参照URLをどうぞ)。mb_internal_ecnoding → mb_http_output への変換はしてくれると思います。ただしinput側(フォーム入力など)はまた別の話なので要注意。このあたりはマニュアルを熟読してください。
その他の回答 (1)
- inu2
- ベストアンサー率33% (1229/3720)
回答No.1
ソースそのものをUTF-8にしてください もしくはinternal_encodingのほうをsjisにする
質問者
お礼
ありがとうございます。 私の質問の仕方が悪いのですが、ソースそのものをUTF-8にしたらUTF-8で出力されるのは当たり前だと思うのです。 別の文字コードのときに、出力がちゃんとUTF-8になることを確認したいのです。
お礼
ありがとうございます。 参考URLを読んでやってみます。
補足
php.iniファイルにおいて output_buffering = On output_handler = mb_output_handler とし、 <?PHP ob_start(); ?> <HTML> <BODY> <?PHP echo "教えて"; ?> </BODY> </HTML> <?PHP ob_end_flush(); ?> と変更したらできました。 どうもありがとうございました。