• ベストアンサー

UTF8のページでIEがシフトJISを選んでしまうことがある

PHPの出力をUTF8に変更しました。 ところがUTF8の指定を無視してシフトJISがブラウザで選択されてしまうことがあります。 php.ini の設定を変更。 ファイルを UTF8で保存。 ヘッダーを content='text/html;charset=utf-8 と指定。 としてあります。 なぜブラウザがシフトJISを選択してしまうことがあるのでしょうか? どのあたりの設定を直せばよいのかわかりません。 ご存知の方がいましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nick9090
  • ベストアンサー率26% (102/378)
回答No.4

PHPスクリプト内で header('Content-Type: text/html; charset=UTF-8'); を出力してみるとどうなりますか?

taaaaaaa
質問者

お礼

headerの記述を追加してみたところ安定しているようです。 <head>内の記述順と併用して利用してみます。 ありがとうございました。

その他の回答 (3)

回答No.3

WEBブラウザは基本的に以下の3つの項目で表示する文字コードを決めているようですのでこれらをチェックしてみてください。 titleタグがmetaタグよりも前にあったりする場合は要注意です。 ・HTTPヘッダー ・ページ内のmetaタグ ・ページに最初に現れるマルチバイト文字の文字コード

taaaaaaa
質問者

補足

cssファイル1つとjava scriptファイルを2つ読み込むようになっていました。 java scriptは、UTF8で保存してもWEBを実行するとSJISになってしまうのが分かりました。Windowsサーバだからでしょうか? このjava scriptを外してWEBを実行するとちゃんとUTF8を選択するようです。

回答No.2

HTMLレベルでのMETAタグではなく、Webサーバから送られてくるヘッダーがSJISになってるのでは? php.iniのdefault_charsetはUTF-8に変更してありますか? Webサーバはapacheでしょうか? apacheでしたら、httpd.confのAddDefaultCharsetや AddCharsetなどを確認してみてください。 Webアプリを構築する場合は、ヘッダー解析ソフトなどを使用した方が良いと思いますよ。

taaaaaaa
質問者

補足

Webサーバはapacheです。 そちらの設定は確認していないのでチェックしてみます。

  • _chihiro_
  • ベストアンサー率63% (26/41)
回答No.1

>php.ini の設定を変更。 >ファイルを UTF8で保存。 >ヘッダーを content='text/html;charset=utf-8 と指定。 の部分をどう設定してあるのか、公開できる範囲で示してもらえますでしょうか?

関連するQ&A