アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

XP/PHP5.2.9/Apache2.2.11
の環境で、簡単なシステムを作っているのですが、その際に
PHP側で
header( "Content-Type: text/html;charset=shift_jis");
HTML側で
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
と明示的にSJISにしているのですが、実際にローカルで確認すると文字化けしてしまうPHPファイルがあります。(1ファイルのみ)
他のPHPファイルは同様のヘッダー情報を送信していますが、文字化けせずに画面出力されています。

HTML-PHP初心者のため、補足等必要になるとは思いますが、どうぞご教授下さい。

A 回答 (3件)

IEで見たり、FireFoxで見たりと複数ブラウザで確認していますか?


文字化けしている環境をつきとめると、原因が見えてくるかも知れません。
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
の前に、日本語(2バイト文字)が書かれている等はありませんか?
全角空白等の見つけにくいものかも知れません。
ブラウザのソースを表示で出力された結果を、半角空白、全角空白を代替え記号で表示できるようなテキストエディタで表示させれば、判るかも知れません。

文字化けした環境で、文字コードを自動ではなく、手動で切り替えて文字化けの仕方から、どの文字コードだと認識されているか、を確認すると判るかも知れません。

該当のファイルで外部データを読み込んでいないか(DBからデータを取得している、テキストファイルを読み込んでいる、別のPHPファイルをIncludeしている)、読み込んでいたらそちらの文字コードが正しくないのかも知れません
    • good
    • 0
この回答へのお礼

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

>ブラウザのソースを表示で出力された結果を、半角空白、全角空白を代替え記号で表示できるようなテキストエディタで表示させれば、判るかも知れません。

と仰られたのでサクラエディタで開いてみました。
そこで驚愕・・・文字化けしているPHPファイル自体の文字コードがUTF-8になっていました・・・。(苦笑)
サクラエディタでソースの文字コードをSJISに変換して再度ローカルで確認したところ、問題なく動作しました^^;

この上ない凡ミスでお恥ずかしい限りです。

BellBell様の回答は今後文字化けが発生した際のヒントとして大変有意義なものでした。

ご回答感謝いたします。

お礼日時:2010/04/15 12:49

初心者とのことなので、


mb_internal_encoding()
mb_http_output()
mb_detect_order()
などの文字コード関連の設定もご確認ください。
    • good
    • 0
この回答へのお礼

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

No2のBellBell様へのお礼に書きました通り、PHP云々以前の話でした・・。

>mb_internal_encoding()
>mb_http_output()
>mb_detect_order()

これらはまだ使ったことのない関数ですので、今後機会がありましたら使ってみたいと思います。

お礼日時:2010/04/15 12:51

>header( "Content-Type: text/html;charset=shift_jis");


外したら・・・申し訳ないのですが、
『shift_jis』ではなく『shift-jis』ってことないですか?

参照URL
http://www.shtml.jp/mojibake/meta.html
    • good
    • 0
この回答へのお礼

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

>『shift_jis』ではなく『shift-jis』ってことないですか?

試してみましたが、shift_jisと同様の結果になります。

お礼日時:2010/04/15 12:03

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