ホームページの文字コードがUTF-8になってしまう。

ローカル上では、shift-jisで正常に表示されるのですが、ftpでサーバーにアップして、表示すると、すべて、UTF-8になってしまい文字化けします。
ホームページのcharsetもshift-jisだし、kccコマンドで調べても、shift-jisになっています。
解決方法を教えてください。

回答の条件
  • 1人3回まで
  • 登録:2008/02/20 15:51:21
  • 終了:2008/02/27 15:55:02

回答(2件)

id:akr-x No.1

akr-x回答回数18ベストアンサー獲得回数12008/02/20 16:07:31

ポイント35pt

お使いのメモ帳を開き、.htaccessと名前を付けてサイトフォルダの最上階層に保存して下さい。

そして中身ですが、

php_value mbstring.language Japanese

php_flag mbstring.encoding_translation On

php_value mbstring.script_encoding SJIS

php_value mbstring.internal_encoding SJIS

とコピペしてサーバーにアップして下さい。

これで直らなければ、サーバー会社に問い合わせてみたらよいでしょう。

id:tezcello No.2

tezcello回答回数457ベストアンサー獲得回数682008/02/20 16:26:49

ポイント35pt

サーバのデフォルトがUTF-8になっているせいだと思われます。

サーバがクライアント(ブラウザ)にデータを渡す際に、HTTPヘッダというのを送ってきます。

通常ブラウザは、その値を見て、エンコードを判断します。

それを送ってこない時に、表示用のページデータ内の文字コード宣言や、metaタグの値をエンコード判別の参考にします。

(それらを無視して、文字コードを勝手に判定するブラウザもあるようですが)


http://q.hatena.ne.jp/1185502908

類似の質問がありましたが、そこの回答でも挙げられているように、根本的にはWebサーバが送るHTTPヘッダを変更しない事にはうまくいきません。

(.htaccess に、AddType "text/html; charset=Shift_JIS" .html を追加するか、Webサーバの設定を変えるかが必要ですが、レンタルサーバでは出来ない可能性があります)


逆に、ページデータを全てUTF-8に書き直すのも近道かも知れませんね。

今時のブラウザはUTF-8に対応していないものを探す方が困難でしょうし、携帯でもかなりの機種がUTF-8対応なのでは?


別な対策として、PHPスクリプトで、HTTPヘッダと共にページデータを出力するような仕組みにする事も出来そうですが、全てのページが動的なものとなってしまいます。

id:ebagos

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

解決いたしました。

httpd.confとphp.iniのデフォルトがutf-8になっていました。

2008/02/20 16:42:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません