プロが教える店舗&オフィスのセキュリティ対策術

文字コードがUTF-8で作られたテンプレを使ってWEBページを作成しておりましたが、IE11で文字化けして困っています。他のブラウザでは問題ありません。

まず文字化けするページをIEで表示し、表示→エンコード→その他→UTF-8で行うと
文字化けせず正しく表示されます。つまりブラウザがUTF-8であることを認識して
くれないことになります。

なおFFFTPでサーバー(ロリポップ)にアップする前にIEで表示させると文字化けは起こりません。
アップした後にIEで表示すると文字化けします。

FFFTPの設定はローカルの漢字コード、ホストの漢字コードを共にUTF-8BOMにしています。
HTMLファイルをBOM付、なしに保存して試しても文字化けします。

どなたか至急アドバイスいただけませんか?よろしくお願いいたします。


●文字化けするページのヘッダー情報
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=yes, maximum-scale=1.0, minimum-scale=1.0">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="GENERATOR" content="JustSystems Homepage Builder Version 18.0.14.0 for Windows">
<link rel="stylesheet" href="style.css" type="text/css" media="screen">
<!--[if lt IE 9]>
<script src="js/html5.js"></script>
<script src="js/css3-mediaqueries.js"></script>
<![endif]-->
<script src="js/jquery1.7.2.min.js"></script>
<script src="js/script.js"></script>
<title>〇〇〇〇</title>
</head>

質問者からの補足コメント

  • キャッシュ削除しても解決しませんでした…

      補足日時:2017/09/14 05:49
  • 読み込んでいる外部jsファイルはsft-jisで保存されていました。
    やっていいかわからないのですが、これらすべてのjsファイルを
    UTF-8で保存しなおしました。しかし文字化けは解消されませんでした。

      補足日時:2017/09/14 08:12
  • うーん・・・

    HTTPヘッダとは初めて聞きまして、調べました。
    文字化けするページでF15を押し、ネットワークというところを見ると
    応答ヘッダーでcharset=shift_jisと記述された部分が現れました。
    しかしここからどうすればいいのでしょうか?

      補足日時:2017/09/14 12:00

A 回答 (5件)

上の階層は下に伝播しますが、下の階層(カレント)自体の.htaccessが優先されるので


上の階層の設定はあまり関係ないかもしれません
    • good
    • 0
この回答へのお礼

htmlを保存する階層を上にしたら問題は解決しました。
ロリポップの場合は下の階層にまで影響すると書いてありました。
https://lolipop.jp/manual/hp/htaccess/
ご協力ありがとうございました。

お礼日時:2017/09/14 13:42

ソースの最初の宣言が<head>の上に未だあるから、そこを書いてよ。

    • good
    • 0

> 応答ヘッダーはshift_jisのまま変わりませんでした。



httpヘッダもキャッシュの影響があるみたいですよ
適当なダミートークンをつけて再検索するとか
(hoge.htmだったhoge.htm?test=1的なダミーをつける)
ctrl+F5を連打するとか、ブラウザを再起動するとか
いろいろ試してみて下さい
    • good
    • 0
この回答へのお礼

htmlを入れたフォルダの上の階層に.htaccessがあり、中を見たらshift_jisが指定してありました。たぶんこれが原因ですよね?あーもーしんどいです。

お礼日時:2017/09/14 13:34

ようはサーバーからかえってくるときに「今からshift_jisでデータ送るよ」と言っていて


実際のページはutf8で書かれた上に「このページutf8で書いてあるよ」と宣言している状態ですね。
ブラウザに寄っては、サーバーを信じたり、コンテンツの中身を信じたりどちらが正しいとは言えないです。

httpサーバーはレンタルか何かでしょうか?
.htaccessで設定変更を許可されているようでしたら

AddDefaultCharset UTF-8
AddType "text/html; charset=UTF-8" .html

のような記述でデフォルトの設定を上書きするとよいでしょう
    • good
    • 0
この回答へのお礼

ロリポップですので.htaccessです。
サーバーの説明通り.htaccessを設置しても
応答ヘッダーはshift_jisのまま変わりませんでした。

お礼日時:2017/09/14 13:01

httpヘッダで別のcharsetが渡されている可能性はありませんか?

    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。別のcharsetとはどういうことでしょうか?

お礼日時:2017/09/14 11:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!