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

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

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/02/27 15:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:akr-x No.1

回答回数18ベストアンサー獲得回数1

ポイント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

回答回数460ベストアンサー獲得回数69

ポイント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

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

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

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

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

回答リクエストを送信したユーザーはいません