
特定のときにIE で文字化けすることがあり、でもその特定の時がどういう時なのかよくわからない、というIE を毛嫌いする理由が一つあったのですが、
http://kzworks.at.webry.info/200709/article_6.html
で原因がわかりました。
http://support.microsoft.com/kb/413581/ja
によると、
[表示] - [エンコード] メニューの中にある [日本語 (自動選択)] は、日本語に特化した (限定した) 自動選択の機能です。とのこと。UTF-8 は漏れていたのですね。
このコマンドを選択した場合、インターネット上の日本語で書かれた meta タグによる文字セットの指定が無い Web ページを表示させるたびに、自動的に表示の文字セットが選択されます。
表示の文字セットは日本語の文字セット (JIS、 シフト JIS、EUC) から選択されるので、日本語で書かれた Web ページの文字セットを高い精度で自動判別することができます。
しかしながら、日本語以外で書かれた Web ページを表示する場合にも文字セットを日本語の中から選択するので、アルファベットや数字などを除いた日本語に無い文字は文字化けして表示されてしまいます。
たぶんHTTPヘッダでUTF-8 指定した時は大丈夫みたいなので、「Web ページ側でUTF-8 を使用していてMeta でもUTF-8を指定していて、でもHTTP ヘッダでは指定していなくて、IE が『日本語(自動選択)』を指定しているとき」に不可解に感じられる文字化けが発生していたみたいです。
なぜ「自動選択」と「日本語(自動選択)」があるんだろうという長年の疑問が解けました。
検索したら割と出てきたから結構常識なのでしょうか・・。
0 件のコメント:
コメントを投稿