質問: ホームページの文字コードがUTF-8になってしまう。 ローカル上では、shift-jisで正常に表示されるのですが、ftpでサーバーにアップして、表示すると、すべて、UTF-8になってしまい文字化けします。 ホームページのcharsetもshift-jisだし、kccコマンドで調べても、shift-jisになっています。 解決方法を教えてください。
回答: サーバのデフォルトがUTF-8になっているせいだと思われます。 サーバがクライアント(ブラウザ)にデータを渡す際に、HTTPヘッダというのを送ってきます。 通常ブラウザは、その値を見て、エンコードを判断します。 それを送ってこない時に、表示用のページデータ内の文字コード宣言や、metaタグの値をエンコード判別の参考にします。 (それらを無視して、文字コードを勝手に判定するブラウザもあるようですが) 類似の質問がありましたが、そこの回答でも挙げられているように、根本的にはWebサーバが送るHTTPヘッダを変更しない事にはうまくいきません。 (.htaccess に、AddType "text/html; charset=Shift_JIS" .html を追加するか、Webサーバの設定を変えるかが必要ですが、レンタルサーバでは出来ない可能性があります) 逆に、ページデータを全てUTF-8に書き直すのも近道かも知れませんね。 今時のブラウザはUTF-8に対応していないものを探す方が困難でしょうし、携帯でもかなりの機種がUTF-8対応なのでは? 別な対策として、PHPスクリプトで、HTTPヘッダと共にページデータを出力するような仕組みにする事も出来そうですが、全てのページが動的なものとなってしまいます。