「これはヤバかったな」という遅刻エピソード

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に変換されるわけではないのでしょうか?

A 回答 (2件)

mb_internal_encodingをキチンとsjisで指定した上で、ob_startしてください(参照URLをどうぞ)。

mb_internal_ecnoding → mb_http_output への変換はしてくれると思います。ただしinput側(フォーム入力など)はまた別の話なので要注意。このあたりはマニュアルを熟読してください。

参考URL:http://www.php.net/manual/ja/function.mb-output- …

この回答への補足

php.iniファイルにおいて

output_buffering = On
output_handler = mb_output_handler

とし、

<?PHP ob_start(); ?>

<HTML>
<BODY>
<?PHP echo "教えて"; ?>
</BODY>
</HTML>

<?PHP ob_end_flush(); ?>

と変更したらできました。
どうもありがとうございました。

補足日時:2008/01/23 17:47
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考URLを読んでやってみます。

お礼日時:2008/01/22 21:08

ソースそのものをUTF-8にしてください



もしくはinternal_encodingのほうをsjisにする
    • good
    • 0
この回答へのお礼

ありがとうございます。
私の質問の仕方が悪いのですが、ソースそのものをUTF-8にしたらUTF-8で出力されるのは当たり前だと思うのです。
別の文字コードのときに、出力がちゃんとUTF-8になることを確認したいのです。

お礼日時:2008/01/22 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報