- ベストアンサー
[HTML-PHP]あるPHPファイルだけ文字化け
- XP/PHP5.2.9/Apache2.2.11の環境で作成したシステムで、一部のPHPファイルが文字化けしてしまいます。
- 文字化けが発生しているPHPファイルには、明示的にcharset=shift_jisを設定していますが、他のPHPファイルでは同様の設定でも文字化けは発生しません。
- HTML-PHP初心者のため、原因と解決策についてご教授いただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
IEで見たり、FireFoxで見たりと複数ブラウザで確認していますか? 文字化けしている環境をつきとめると、原因が見えてくるかも知れません。 <meta http-equiv="content-type" content="text/html; charset=shift_jis"> の前に、日本語(2バイト文字)が書かれている等はありませんか? 全角空白等の見つけにくいものかも知れません。 ブラウザのソースを表示で出力された結果を、半角空白、全角空白を代替え記号で表示できるようなテキストエディタで表示させれば、判るかも知れません。 文字化けした環境で、文字コードを自動ではなく、手動で切り替えて文字化けの仕方から、どの文字コードだと認識されているか、を確認すると判るかも知れません。 該当のファイルで外部データを読み込んでいないか(DBからデータを取得している、テキストファイルを読み込んでいる、別のPHPファイルをIncludeしている)、読み込んでいたらそちらの文字コードが正しくないのかも知れません
その他の回答 (2)
- tany180sx
- ベストアンサー率63% (239/379)
初心者とのことなので、 mb_internal_encoding() mb_http_output() mb_detect_order() などの文字コード関連の設定もご確認ください。
お礼
ご回答ありがとうございます。 No2のBellBell様へのお礼に書きました通り、PHP云々以前の話でした・・。 >mb_internal_encoding() >mb_http_output() >mb_detect_order() これらはまだ使ったことのない関数ですので、今後機会がありましたら使ってみたいと思います。
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
>header( "Content-Type: text/html;charset=shift_jis"); 外したら・・・申し訳ないのですが、 『shift_jis』ではなく『shift-jis』ってことないですか? 参照URL http://www.shtml.jp/mojibake/meta.html
お礼
ご回答ありがとうございます。 >『shift_jis』ではなく『shift-jis』ってことないですか? 試してみましたが、shift_jisと同様の結果になります。
お礼
ご回答ありがとうございます。 >ブラウザのソースを表示で出力された結果を、半角空白、全角空白を代替え記号で表示できるようなテキストエディタで表示させれば、判るかも知れません。 と仰られたのでサクラエディタで開いてみました。 そこで驚愕・・・文字化けしているPHPファイル自体の文字コードがUTF-8になっていました・・・。(苦笑) サクラエディタでソースの文字コードをSJISに変換して再度ローカルで確認したところ、問題なく動作しました^^; この上ない凡ミスでお恥ずかしい限りです。 BellBell様の回答は今後文字化けが発生した際のヒントとして大変有意義なものでした。 ご回答感謝いたします。