人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: ebagos
●カテゴリ:ウェブ制作
✍キーワード:FTP JIS UTF-8 コマンド サーバー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● akr-x
●35ポイント

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

そして中身ですが、

php_value mbstring.language Japanese

php_flag mbstring.encoding_translation On

php_value mbstring.script_encoding SJIS

php_value mbstring.internal_encoding SJIS

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

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


2 ● tezcello
●35ポイント

サーバのデフォルトが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になっていました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ