トップ回答者
Win8.1+IE11でUTF-8エンコードの"※"が表示できない

質問
-
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>
よろしくお願いいたします。
回答
-
インターネットオプション、フォント、言語セットは初めから「日本語」となっており、
試しに、逆にラテン語ベースとしてみたのですが変化は見られず、
再度言語セットを見ると「日本語」に戻っておりました。
そういうことではありません。
言語セットごとにフォントを設定するのです。utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。
ちなみにですが、当然ですが、ファイルをShift-JIS保存してみたところ正常です。EUCも大丈夫。
それは、言語セット=日本語のフォントです。なので、言語セット=ラテン語ベースのフォントをそれと同じにすれば、同じように表示されるはず。- 編集済み ウィンドウズスクリプトプログラマ 2014年9月3日 11:43
- 回答としてマーク 末吉豆 2014年9月3日 14:13
-
●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月6日 6:51
- 回答としてマーク 末吉豆 2014年9月12日 14:39
すべての返信
-
佐祐理さんの回答とダブリますが、せっかく書いたのでアップします。
質問者さん固有の問題ではないのですか? そのあたりは切り分けられているでしょうか?
例えばこのページを見たとき、質問者さんの質問の、
> "※"や"☆"などが、"□"のように表示されてしまいます。
> ※☆△などは機種依存文字でもないと思いますし。> ※ ☆ △
が「"□"のように表示」されるのでしょうか? 他の PC で見た場合どうなりますか?
ちなみに、このページは応答 HTTP ヘッダに Content-Type: text/html; charset=utf-8 と指定してあり、ブラウザは UTF-8 と認識します。
残念ながら自分は Win8.1+IE11 は持ってないので確認できません。他の閲覧者の方で Win8.1+IE11 を使っている方は ※ ☆ △ がどう見えていますか?
- 回答の候補に設定 星 睦美 2014年9月3日 4:56
-
佐祐理様 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/
フォントキャッシュについては知識がありませんでした。
ちょっと調べてみます。
ありがとうございました。
-
フォントキャッシュファイルを削除してみましたが、残念ながら。。
ブラウザのキャッシュはクリアしましたが、現状変化なしです。
プロキシ、サーバのキャッシュとなると、民生プロバイダを利用しているもので、こちらからでは手が出ませんでした。
怪しいかもしれませんね。
タグなしで、ファイルに"※"一文字のみ(改行コードもなし)とした場合、最初Shift-JISと判定され化けましたが、
UTF-8に変更したところ変わらず”□”となってしまいました。
ちなみにですが、当然ですが、ファイルをShift-JIS保存してみたところ正常です。EUCも大丈夫。
ウィンドウズスクリプトプログラマ様ご回答ありがとうございます。
インターネットオプション、フォント、言語セットは初めから「日本語」となっており、
試しに、逆にラテン語ベースとしてみたのですが変化は見られず、
再度言語セットを見ると「日本語」に戻っておりました。
他のPCで試せないのが痛いです。
-
インターネットオプション、フォント、言語セットは初めから「日本語」となっており、
試しに、逆にラテン語ベースとしてみたのですが変化は見られず、
再度言語セットを見ると「日本語」に戻っておりました。
そういうことではありません。
言語セットごとにフォントを設定するのです。utf-8は言語セット=ラテン語ベースのフォントです。シフトjisは言語セット=日本語のフォントです。
ちなみにですが、当然ですが、ファイルをShift-JIS保存してみたところ正常です。EUCも大丈夫。
それは、言語セット=日本語のフォントです。なので、言語セット=ラテン語ベースのフォントをそれと同じにすれば、同じように表示されるはず。- 編集済み ウィンドウズスクリプトプログラマ 2014年9月3日 11:43
- 回答としてマーク 末吉豆 2014年9月3日 14:13
-
言語セットの操作で解決しました。ウィンドウズスクリプトプログラマ様ありがとうございます。
ローカルでIISを使用していますが、キャッシュのクリア方法がわかりませんでした。すみません。出力キャッシュ一覧は何も登録されていなかったのですが、これでよかったのでしょうか。
ローカルにHTMLファイルを置いてIEで表示(具体的にはドラッグ&ドロップ)しましたが、結果は同じでした。
言語セットの「ラテン語ベース」のフォントをそれぞれMSゴシック等に変更したところ、正常に ※ ☆ △ が表示されました。しかしこれでは各ローカル設定をいじってもらう必要があると思い、試しに<font>タグでfont-familyを指定してみたところうまくいきました。突き詰めれば小さなミスでした。
実際に作っているページではスタイルシートでfont-familyを指定しているつもりでしたが抜けがあったようです。
MACにMSゴシックってあるの?OSAKA?とかいろいろ気になるところがありますが、MAC相手は検証できる(してもらえる)のでおいおい進めていこうと思います。
このたびは皆様本当にありがとうございました。
。。。。なんか字がちっちゃい。。。
- 編集済み 末吉豆 2014年9月3日 14:41
-
私が解釈した内容ですと、
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
-
突然一部のメールが文字化け - マイクロソフト コミュニティ
こちらでは、outlook.comで、逆に、Win8.1+IE11以外で、UTF-8エンコードの日本語文字が□になってるそうです。
これも日本語文字のフォントに欧文用フォントを指定してるようです。
2ヵ月半経過してもマイクロソフトは調査中のまま進展なし。たぶんマイクロソフトには原因解明は無理でしょう。- 編集済み ウィンドウズスクリプトプログラマ 2014年9月4日 7:43
-
●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月6日 6:51
- 回答としてマーク 末吉豆 2014年9月12日 14:39