プロが教えるわが家の防犯対策術!

PHPの出力をUTF8に変更しました。

ところがUTF8の指定を無視してシフトJISがブラウザで選択されてしまうことがあります。

php.ini の設定を変更。
ファイルを UTF8で保存。
ヘッダーを content='text/html;charset=utf-8 と指定。

としてあります。

なぜブラウザがシフトJISを選択してしまうことがあるのでしょうか?
どのあたりの設定を直せばよいのかわかりません。


ご存知の方がいましたら教えてください。

A 回答 (4件)

PHPスクリプト内で


header('Content-Type: text/html; charset=UTF-8');
を出力してみるとどうなりますか?
    • good
    • 0
この回答へのお礼

headerの記述を追加してみたところ安定しているようです。

<head>内の記述順と併用して利用してみます。
ありがとうございました。

お礼日時:2008/01/08 12:25

WEBブラウザは基本的に以下の3つの項目で表示する文字コードを決めているようですのでこれらをチェックしてみてください。


titleタグがmetaタグよりも前にあったりする場合は要注意です。

・HTTPヘッダー
・ページ内のmetaタグ
・ページに最初に現れるマルチバイト文字の文字コード

この回答への補足

cssファイル1つとjava scriptファイルを2つ読み込むようになっていました。

java scriptは、UTF8で保存してもWEBを実行するとSJISになってしまうのが分かりました。Windowsサーバだからでしょうか?

このjava scriptを外してWEBを実行するとちゃんとUTF8を選択するようです。

補足日時:2007/12/31 13:08
    • good
    • 0

HTMLレベルでのMETAタグではなく、Webサーバから送られてくるヘッダーがSJISになってるのでは?



php.iniのdefault_charsetはUTF-8に変更してありますか?
Webサーバはapacheでしょうか?
apacheでしたら、httpd.confのAddDefaultCharsetや
AddCharsetなどを確認してみてください。

Webアプリを構築する場合は、ヘッダー解析ソフトなどを使用した方が良いと思いますよ。

この回答への補足

Webサーバはapacheです。

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

補足日時:2007/12/31 13:06
    • good
    • 0

>php.ini の設定を変更。


>ファイルを UTF8で保存。
>ヘッダーを content='text/html;charset=utf-8 と指定。

の部分をどう設定してあるのか、公開できる範囲で示してもらえますでしょうか?
    • good
    • 0

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