- ベストアンサー
HTMLがSHIFT-JISにならない
- HTMLファイルのcharset設定をSHIFT_JISにしても、PCでアクセスするとUTF-8で表示されてしまう問題が発生しています。
- 携帯電話用サイトを作成しているが、HTML自体の文字コードはSHIFT-JISで保存しているにも関わらず、スマートフォン(Android)で文字化けしている。
- charsetでSHIFT_JISを指定し、ファイルもSHIFT_JISで保存しているのにUTF-8になってしまう理由がわからない。同じような現象を経験したことがある人は助けてほしい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
サーバーへは、テキストモードで転送します。バイナリではありません。テキストモードで転送すると、サーバーの改行コードに合わせます。 通常は、 <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> の記述があれば、HTTP応答ヘッダに関わらず、ブラウザはそれに従うはずです。元々はサーバーが<meta>を理解してくれる想定でしたが、そのような動作をするサーバーはありません。 >PCでアクセスした時にUTF-8で表示され文字化けされてしまいます。 これをどのように判断されたのか疑問です。もし、ブラウザの文字エンコーディングでUTF-8を選択すると、きちんと表示されるのでしたら 「ファイルもSHIFT_JISで保存しているのにも関わらず」 を疑います。ローカルでブラウザからそのファイルを開いたら・・・ もし、ブラウザのエンコーディングでUTF-8を選択するときちんと表示されるのでしたら、文字コードがUTF-8で保存されています。 一方、ブラウザのエンコーディング指定を(正確には)Shift_JISにすると、きちんと表示されるなら、ブラウザが文字コードをUTF-8と判断しているということですから HTMLの前に、UTFと判断する何か余分なものが入っていませんか? たとえばBOM(unicodeサイン)とかが残っている。UNICODEの文字--空白とか--が入っているとか。 サーバーの応答ヘッダは、firefoxをご利用でしたら、Live HTTP Headers( https://addons.mozilla.jp/firefox/details/3829 )と言うアドオンで調べることが出来ます。 また、 Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) でURLを指定してチェックすると、文字コードの一致性が判別できます。それ以外を原因とするエラーもチェックできます。
その他の回答 (3)
- catstyle
- ベストアンサー率0% (0/1)
PCでアクセスしたときにUTF-8で表示されているというのはどこで確認しましたか? もし、差支えなければそのURLを教えてもらえれば、原因を見つけやすいかもしれません。
- Yune-Kichi
- ベストアンサー率74% (465/626)
ブラウザが「UTF-8として解釈する」のでしょうか。 そうであるならば,とりあえず送信されてくるHTTPヘッダ情報を見てみるとよいかと。 # IEならばF12 開発者ツール - ネットワーク - キャプチャ - 該当項目詳細 - 応答ヘッダー HTTPヘッダで指定されているContent-TypeフィールドはMeta要素での指定より優先されます。 HTTPヘッダで Content-Type: text/html; charset=UTF-8 と書かれていたならば,それを Content-Type: text/html; charset=Shift_JIS と返すように変更する必要があります。 # 方法はサーバーに依存。
- kawais070
- ベストアンサー率52% (2242/4283)
サーバーへファイルを転送するときにAsciiモードで転送していたりして。 転送モードをバイナリにしてみましょう。 転送モードが何のことかわからないならば、転送に使用しているソフト名と、サーバーのOSまたはサーバー提供会社の名前など、もう少し情報を補足に書いてください。