お世話になります。
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初心者のため、補足等必要になるとは思いますが、どうぞご教授下さい。
No.2ベストアンサー
- 回答日時:
IEで見たり、FireFoxで見たりと複数ブラウザで確認していますか?
文字化けしている環境をつきとめると、原因が見えてくるかも知れません。
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
の前に、日本語(2バイト文字)が書かれている等はありませんか?
全角空白等の見つけにくいものかも知れません。
ブラウザのソースを表示で出力された結果を、半角空白、全角空白を代替え記号で表示できるようなテキストエディタで表示させれば、判るかも知れません。
文字化けした環境で、文字コードを自動ではなく、手動で切り替えて文字化けの仕方から、どの文字コードだと認識されているか、を確認すると判るかも知れません。
該当のファイルで外部データを読み込んでいないか(DBからデータを取得している、テキストファイルを読み込んでいる、別のPHPファイルをIncludeしている)、読み込んでいたらそちらの文字コードが正しくないのかも知れません
ご回答ありがとうございます。
>ブラウザのソースを表示で出力された結果を、半角空白、全角空白を代替え記号で表示できるようなテキストエディタで表示させれば、判るかも知れません。
と仰られたのでサクラエディタで開いてみました。
そこで驚愕・・・文字化けしているPHPファイル自体の文字コードがUTF-8になっていました・・・。(苦笑)
サクラエディタでソースの文字コードをSJISに変換して再度ローカルで確認したところ、問題なく動作しました^^;
この上ない凡ミスでお恥ずかしい限りです。
BellBell様の回答は今後文字化けが発生した際のヒントとして大変有意義なものでした。
ご回答感謝いたします。
No.3
- 回答日時:
初心者とのことなので、
mb_internal_encoding()
mb_http_output()
mb_detect_order()
などの文字コード関連の設定もご確認ください。
ご回答ありがとうございます。
No2のBellBell様へのお礼に書きました通り、PHP云々以前の話でした・・。
>mb_internal_encoding()
>mb_http_output()
>mb_detect_order()
これらはまだ使ったことのない関数ですので、今後機会がありましたら使ってみたいと思います。
No.1
- 回答日時:
>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と同様の結果になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化けについて
-
EclEmmaレポートのエクスポート...
-
<meta charset="utf-8"><!-- 文...
-
index.phpに入るには、どうすれ...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
Subversionのリポジトリの削除
-
ImageCreate関数が undefined f...
-
メールフォームのタイトルが文...
-
.phpと.incファイルの違いはな...
-
php 完了画面の送信メールのコ...
-
PHPのif文でその処理を途中で抜...
-
PHPsendmailにて送信元を変更
-
CSV出力にHTMLが入ってしまう
-
入力フォームの空白や改行を制...
-
現在位置より2つ上のディレク...
-
VB.NET 最下位のディレクトリ名...
-
VBSの「MsgBox」について
-
図に示す階層構造で,現在のデ...
-
MySQLのdatetime型の月日0を削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーにアップすると文字化...
-
PHPExcelバッファへの書き込み...
-
<meta charset="utf-8"><!-- 文...
-
ファイルの文字コードを調べる...
-
HTTPヘッダはメタタグにも記述...
-
mysql→EUC-JP、php→UTF-8の時の...
-
韓国語のファイル名
-
フォームからPOSTされた値をXML...
-
PHPで「®」や特殊文字のエスケープ
-
発生した文字化けに対する対処
-
phpログファイルの文字化けにつ...
-
緊急です!文字コードの設定ミ...
-
[HTML-PHP]あるPHPファイルだけ...
-
phpで動的タイトル
-
EclEmmaレポートのエクスポート...
-
ノートパッドでの文字化けについて
-
特定ファイルのみ文字コード変換
-
csvファイル出力時に文字化けし...
-
PHPのif文でその処理を途中で抜...
-
onedrive にexcelファイルをア...
おすすめ情報