none
Win8.1+IE11でUTF-8エンコードの"※"が表示できない RRS feed

  • 質問

  • UTF-8エンコードにてHTMLファイルを作成しWin8.1のIE11(11.0.9600.17239 更新バージョン11.0.11)で表示させると

    "※"や"☆"などが、"□"のように表示されてしまいます。

    同じバージョンのIE11でもWin7上ではちゃんと表示されるのですが。

    ※☆△などは機種依存文字でもないと思いますし。

    これを回避する方法をご存知の方が見えましたらご教授願いたいと思います。

    HTMLソースは以下です。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    ※ ☆ △
    </body>
    </html>

    よろしくお願いいたします。

    2014年9月2日 23:33

回答

  • インターネットオプション、フォント、言語セットは初めから「日本語」となっており、

    試しに、逆にラテン語ベースとしてみたのですが変化は見られず、

    再度言語セットを見ると「日本語」に戻っておりました。

    そういうことではありません。

    言語セットごとにフォントを設定するのです。utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。


    ちなみにですが、当然ですが、ファイルをShift-JIS保存してみたところ正常です。EUCも大丈夫。
    それは、言語セット=日本語のフォントです。なので、言語セット=ラテン語ベースのフォントをそれと同じにすれば、同じように表示されるはず。
    2014年9月3日 10:21
  • ●Win7の場合(Win8で他のブラウザの場合もこちら)
    ※ ☆ △ - MS Pゴシック
    ※ ☆ △ - Lucida Console
    ※ ☆ △ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォTimes New Roman)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    □ □ □ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォMS Pゴシック)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    ※ ☆ △ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォLucida Sans Unicode)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    ※ □ △ - Times New Roman

    フォント指定がない場合、

    utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。

    フォント指定がある場合、そのフォントにない文字は、win8.1+ie11では、同様に、

    utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。

    のようですが、win7+ie11では、どういうわけか、

    utf-8も言語セット=日本語のフォントです。シフトjisは言語セット=日本語のフォントです。

    のようです。

    Lucida Consoleは等幅フォントなので、それぞれの等幅フォントでしょう。

    2014年9月5日 11:12

すべての返信

  • 問題の環境でこの質問スレッドを表示してみてた場合はどうですか? ※ ☆ △ がきちんと表示されているのであれば、作成されたHTMLに問題があるかと。例えば文字コードをUTF-8にしたつもりが誤っていたとか。
    表示できないとしたらPCの問題です。少なくとも私の環境では正しく表示できています。

    • 回答の候補に設定 星 睦美 2014年9月3日 4:55
    2014年9月3日 0:49
  • 佐祐理さんの回答とダブリますが、せっかく書いたのでアップします。

    質問者さん固有の問題ではないのですか? そのあたりは切り分けられているでしょうか?

    例えばこのページを見たとき、質問者さんの質問の、

    > "※"や"☆"などが、"□"のように表示されてしまいます。
     
    > ※☆△などは機種依存文字でもないと思いますし。

    > ※ ☆ △

    が「"□"のように表示」されるのでしょうか? 他の PC で見た場合どうなりますか?

    ちなみに、このページは応答 HTTP ヘッダに Content-Type: text/html; charset=utf-8 と指定してあり、ブラウザは UTF-8 と認識します。

    残念ながら自分は Win8.1+IE11 は持ってないので確認できません。他の閲覧者の方で Win8.1+IE11 を使っている方は ※ ☆ △ がどう見えていますか?

    • 回答の候補に設定 星 睦美 2014年9月3日 4:56
    2014年9月3日 0:56
  • □□□@□□□@□□

    と表示されているなら、エンコードを Unucode(UTF-8) から 日本語(シフトJIS)を選んで表示が変わるか確認してみてください。

    正しく表示されたなら、アクセスしている HTMLファイルを保存する時に UTF-8 を選択しなかったのが原因ではないかと。

    UTF-8 で保存しているならば、フォントキャッシュが怪しいかもしれませんね。

    • 回答の候補に設定 星 睦美 2014年9月3日 4:56
    2014年9月3日 1:23
  • 他の回答者の方から指摘されています文字コードの間違い(例えばメモ帳で html ソースを作って ANSI で保存した)とすると、Win8.1+IE11 に限らず、ほとんど全ての OS+ブラウザでダメだと思いますが、その点は確認されたのでしょうか?

    2014年9月3日 3:16
  • 佐祐理様 SurferOnWww様 藤森幸治様 ご回答ありがとうございます。

    まとめての返信で失礼いたします。

    確かにこのページはUTF-8ですね。ですがこのページは正常に表示できております。

    不思議です。

    ファイルは秀丸で作成しており、UTF-8で保存しました。再度開いてもエンコードはUTF-8と表示されます。

    IEのエンコードを見るとUTF-8として認識しているようで、Shift-JISに変更したところ

    「窶サ縲€笘・€€笆ウ 」となってしまいました。

    また、他のブラウザ(Firefox, Chrome, Safari, Opera)では正しく※☆△と表示されます。

    ○□●■▲についてはIE11でも表示できました。

    当方に他のWin8PCがないため、他PCでの検証はできていません。

    PCの問題というのがあたりかもしれないですね。。。

    ちなみにここに置いてあるのですが。

    http://mamemaki1123.web.fc2.com/

    フォントキャッシュについては知識がありませんでした。

    ちょっと調べてみます。

    ありがとうございました。

    2014年9月3日 3:28
  • すみません。ここの使い方がわかっておらず。。。
    2014年9月3日 3:30
  • ブラウザ、プロキシ、サーバーのキャッシュはリフレッシュしてますか? サーバーの html ソースは直したものの、どこかでキャッシュされている直す前の html ソースが表示されているとか?

    2014年9月3日 3:46
  • 新規で html ファイルを作成し、タグの記述無しで 「※」 1文字だけ書いた物を表示した場合はどうなります?
    2014年9月3日 8:42
  • インターネットオプション、フォント、で言語セット、ラテン語ベースのフォントを日本語フォントにする。
    2014年9月3日 8:47
  • フォントキャッシュファイルを削除してみましたが、残念ながら。。

    ブラウザのキャッシュはクリアしましたが、現状変化なしです。

    プロキシ、サーバのキャッシュとなると、民生プロバイダを利用しているもので、こちらからでは手が出ませんでした。

    怪しいかもしれませんね。

    タグなしで、ファイルに"※"一文字のみ(改行コードもなし)とした場合、最初Shift-JISと判定され化けましたが、

    UTF-8に変更したところ変わらず”□”となってしまいました。

    ちなみにですが、当然ですが、ファイルをShift-JIS保存してみたところ正常です。EUCも大丈夫。

    ウィンドウズスクリプトプログラマ様ご回答ありがとうございます。

    インターネットオプション、フォント、言語セットは初めから「日本語」となっており、

    試しに、逆にラテン語ベースとしてみたのですが変化は見られず、

    再度言語セットを見ると「日本語」に戻っておりました。

    他のPCで試せないのが痛いです。

    2014年9月3日 9:29
  • > プロキシ、サーバのキャッシュとなると、民生プロバイダを利用しているもので、こちらからでは手が出ませんでした。

    ご自分の開発マシンの IIS で試すことはできないのでしょうか?

    2014年9月3日 9:55
  • ローカルに HTML ファイルを保存して、IE で開いてみても同じなんでしょうね・・・
    2014年9月3日 10:03
  • インターネットオプション、フォント、言語セットは初めから「日本語」となっており、

    試しに、逆にラテン語ベースとしてみたのですが変化は見られず、

    再度言語セットを見ると「日本語」に戻っておりました。

    そういうことではありません。

    言語セットごとにフォントを設定するのです。utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。


    ちなみにですが、当然ですが、ファイルをShift-JIS保存してみたところ正常です。EUCも大丈夫。
    それは、言語セット=日本語のフォントです。なので、言語セット=ラテン語ベースのフォントをそれと同じにすれば、同じように表示されるはず。
    2014年9月3日 10:21
  • 言語セットの操作で解決しました。ウィンドウズスクリプトプログラマ様ありがとうございます。

     

    ローカルでIISを使用していますが、キャッシュのクリア方法がわかりませんでした。すみません。出力キャッシュ一覧は何も登録されていなかったのですが、これでよかったのでしょうか。

    ローカルにHTMLファイルを置いてIEで表示(具体的にはドラッグ&ドロップ)しましたが、結果は同じでした。

    言語セットの「ラテン語ベース」のフォントをそれぞれMSゴシック等に変更したところ、正常に ※ ☆ △ が表示されました。しかしこれでは各ローカル設定をいじってもらう必要があると思い、試しに<font>タグでfont-familyを指定してみたところうまくいきました。突き詰めれば小さなミスでした。

    実際に作っているページではスタイルシートでfont-familyを指定しているつもりでしたが抜けがあったようです。

    MACにMSゴシックってあるの?OSAKA?とかいろいろ気になるところがありますが、MAC相手は検証できる(してもらえる)のでおいおい進めていこうと思います。

    このたびは皆様本当にありがとうございました。

    。。。。なんか字がちっちゃい。。。

    • 編集済み 末吉豆 2014年9月3日 14:41
    2014年9月3日 14:13
  • 言語セットの「ラテン語ベース」のフォントをそれぞれMSゴシック等に変更したところ、正常に ※ ☆ △ が表示されました。しかしこれでは各ローカル設定をいじってもらう必要があると思い
    Windowsの既定値であればMS P ゴシックか何かで、正常に表示できるはずです。現にWindows 7の環境では表示できているわけですよね。 本当に「各ローカル設定をいじってもらう必要がある」のでしょうか? 単に質問者さんの環境だけ誤った設定に変更されていたのでは?
    2014年9月3日 22:49
  • 末吉豆さん>

    解決したようですが、何が原因でどうしたら解決したのかよく分かりません。

    また、タイトル、

    Win8.1+IE11でUTF-8エンコードの"※"が表示できない

    にあるように、Win8.1+IE11 に限った問題で、"※", "☆", "△" だけがダメだったのでしょうか?(Vista + IE9 とかでもダメで、"※", "☆", "△" がダメなら日本語は全部ダメのような気がしますが)

    詳しく教えていただけないでしょうか。

    #このフォーラムは技術者・開発者同士の情報交換の場所と考えていただけると幸いです。

    2014年9月4日 1:24
  • 私が解釈した内容ですと、
    Shift-JISで書かれたファイルは「日本語」言語セットを使用しており、IEの日本語言語セットでのデフォルトフォントが"MS Pゴシック"になっているので、
    ファイルに単に"※☆△"と書かれた内容は、明示的に書くならば
    <font style="font-family:MS Pゴシック;">※☆△</font>
    と同等と考えることができます。

    一方UTF-8は「ラテン語ベース」言語セットを使用することになり、当方のWin8のIE11ではデフォルトフォントが"Times New Roman"となっていた(と思う)ため、明示的に書くならば
    <font style="font-family:Times New Roman;">※☆△</font>
    となりますが、"Times New Roman"のフォントに"※☆△"がないため"□□□"と表示されてしまう。ならば明示的にフォントを指定すれば。と思ったのですがTimes New Romanでも※☆△は表示できますね。テキストエディタで確認。

    ここで新しい事実ですが、以下をWin7とWin8で表示比較した結果です。
    <font style="font-family:MS Pゴシック;">※ ☆ △</font> - MS Pゴシック<br>
    <font style="font-family:Lucida Console;">※ ☆ △</font> - Lucida Console<br>
    <font style="font-family:Times New Roman;">※ ☆ △</font> - Times New Roman<br>
    ●Win7の場合(Win8で他のブラウザの場合もこちら)
    ※ ☆ △ - MS Pゴシック
    ※ ☆ △ - Lucida Console
    ※ ☆ △ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォTimes New Roman)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    □ □ □ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォMS Pゴシック)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    ※ ☆ △ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォLucida Sans Unicode)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    ※ □ △ - Times New Roman
    フォントを指定しているのにデフォルトフォントに左右されてしまいました。秀丸で各フォント表示できたのでフォントが壊れているわけではなさそうなんですが。ちなみにIE設定のオールリセットというのがあったのでやってみましたがだめでした。本当の原因は根が深いところにありそうです。


    • 編集済み 末吉豆 2014年9月4日 5:45
    2014年9月4日 5:24
  • ieのフォント周りは奇奇怪怪、しかもos/ieのverやシステムのフォント構成によっても変わるので、多様な環境を持ってないと解明するのは困難です。私はとっくに諦めました。それより、そんなieでも確実に文字化けしない方法、デフォルトに依存しない、日本語文字にはwindows標準の日本語フォントを指定する、を勧めます。
    2014年9月4日 6:58
  • 突然一部のメールが文字化け - マイクロソフト コミュニティ

    こちらでは、outlook.comで、逆に、Win8.1+IE11以外で、UTF-8エンコードの日本語文字が□になってるそうです。

    これも日本語文字のフォントに欧文用フォントを指定してるようです。

    2ヵ月半経過してもマイクロソフトは調査中のまま進展なし。たぶんマイクロソフトには原因解明は無理でしょう。
    2014年9月4日 7:16
  • 末吉豆さん>

    追加情報を有難うございました。原因不明ですね。

    教訓は、ウィンドウズスクリプトプログラマさんが言われるように、IE のデフォルトの設定が適用されないよう、スタイルシートできちんとフォントを指定すべきということでしょうか。

    #ところで、フォント名にスペースが含まれている、MS Pゴシック、Lucida Console、Times New Roman などを font-family に設定する場合、ダブルクォーテーション( " )またはシングルクォーテーション( ' )で囲むのだそうです。

    2014年9月4日 7:23
  • 確実に日本語フォントを指定した方がよいということですね。
    MS、ままならないですね。

    font-family指定時にフォント名がある場合ですが、そうなんですね。そうですね。
    シングルクォートで囲むよう心がけます。

    おかげさまで、作成中のHPでは無事"※"が表示できるようにはなりました。

    皆様本当にありがとうございました。
    2014年9月4日 14:47
  • ●Win7の場合(Win8で他のブラウザの場合もこちら)
    ※ ☆ △ - MS Pゴシック
    ※ ☆ △ - Lucida Console
    ※ ☆ △ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォTimes New Roman)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    □ □ □ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォMS Pゴシック)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    ※ ☆ △ - Times New Roman
    ●うちのWin8IEの場合(ラテン語ベースデフォLucida Sans Unicode)
    ※ ☆ △ - MS Pゴシック
    □ □ □ - Lucida Console
    ※ □ △ - Times New Roman

    フォント指定がない場合、

    utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。

    フォント指定がある場合、そのフォントにない文字は、win8.1+ie11では、同様に、

    utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。

    のようですが、win7+ie11では、どういうわけか、

    utf-8も言語セット=日本語のフォントです。シフトjisは言語セット=日本語のフォントです。

    のようです。

    Lucida Consoleは等幅フォントなので、それぞれの等幅フォントでしょう。

    2014年9月5日 11:12
  • なるほど、それっぽい表示になってますね。

    しっかりと明示的に日本語フォントを指定するのがよさそうです。

    抜けが無いよう頑張ります。

    2014年9月7日 13:40