ローカル上では、shift-jisで正常に表示されるのですが、ftpでサーバーにアップして、表示すると、すべて、UTF-8になってしまい文字化けします。
ホームページのcharsetもshift-jisだし、kccコマンドで調べても、shift-jisになっています。
解決方法を教えてください。
お使いのメモ帳を開き、.htaccessと名前を付けてサイトフォルダの最上階層に保存して下さい。
そして中身ですが、
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation On
php_value mbstring.script_encoding SJIS
php_value mbstring.internal_encoding SJIS
とコピペしてサーバーにアップして下さい。
これで直らなければ、サーバー会社に問い合わせてみたらよいでしょう。
サーバのデフォルトが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ヘッダと共にページデータを出力するような仕組みにする事も出来そうですが、全てのページが動的なものとなってしまいます。
ご回答ありがとうございます。
解決いたしました。
httpd.confとphp.iniのデフォルトがutf-8になっていました。