- ベストアンサー
UTF8のページでIEがシフトJISを選んでしまうことがある
PHPの出力をUTF8に変更しました。 ところがUTF8の指定を無視してシフトJISがブラウザで選択されてしまうことがあります。 php.ini の設定を変更。 ファイルを UTF8で保存。 ヘッダーを content='text/html;charset=utf-8 と指定。 としてあります。 なぜブラウザがシフトJISを選択してしまうことがあるのでしょうか? どのあたりの設定を直せばよいのかわかりません。 ご存知の方がいましたら教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
PHPスクリプト内で header('Content-Type: text/html; charset=UTF-8'); を出力してみるとどうなりますか?
その他の回答 (3)
- saintandre
- ベストアンサー率31% (194/607)
WEBブラウザは基本的に以下の3つの項目で表示する文字コードを決めているようですのでこれらをチェックしてみてください。 titleタグがmetaタグよりも前にあったりする場合は要注意です。 ・HTTPヘッダー ・ページ内のmetaタグ ・ページに最初に現れるマルチバイト文字の文字コード
補足
cssファイル1つとjava scriptファイルを2つ読み込むようになっていました。 java scriptは、UTF8で保存してもWEBを実行するとSJISになってしまうのが分かりました。Windowsサーバだからでしょうか? このjava scriptを外してWEBを実行するとちゃんとUTF8を選択するようです。
- mookun2007
- ベストアンサー率59% (28/47)
HTMLレベルでのMETAタグではなく、Webサーバから送られてくるヘッダーがSJISになってるのでは? php.iniのdefault_charsetはUTF-8に変更してありますか? Webサーバはapacheでしょうか? apacheでしたら、httpd.confのAddDefaultCharsetや AddCharsetなどを確認してみてください。 Webアプリを構築する場合は、ヘッダー解析ソフトなどを使用した方が良いと思いますよ。
補足
Webサーバはapacheです。 そちらの設定は確認していないのでチェックしてみます。
- _chihiro_
- ベストアンサー率63% (26/41)
>php.ini の設定を変更。 >ファイルを UTF8で保存。 >ヘッダーを content='text/html;charset=utf-8 と指定。 の部分をどう設定してあるのか、公開できる範囲で示してもらえますでしょうか?
お礼
headerの記述を追加してみたところ安定しているようです。 <head>内の記述順と併用して利用してみます。 ありがとうございました。