Internet Explorer HTML ページのレンダリング時に誤った文字セットを使用する場合

重要

Internet Explorer 11 デスクトップ アプリケーションは廃止され、2022 年 6 月 15 日にサポートが終了します (スコープ内の一覧については 、FAQを参照してください)。 現在使用しているのと同じ IE11 アプリとサイトは、Microsoft EdgeモードInternet Explorerできます。 詳細については、こちらを参照してください。

この記事では、正しくない文字セットを使用して HTML Internet Explorer表示する問題を解決するためのメソッドを提供します。

元の製品バージョン:   Internet Explorer
元の KB 番号:   928847

現象

Microsoft が HTML Internet Explorer表示すると、誤った文字セットが使用されます。 Internet Explorer HTML ページのタグで正しい文字セットが指定されている場合でも、 META これを行います。

たとえば、Internet Explorerで次のタグで指定されている場合でも、Shift-UTF-8 JIS 文字セットを使用して日本語の HTML ページをレンダリングできます META

<META http-equiv=Content-Type content="text/html; charset=utf-8">

原因

この問題は、1 つ以上の条件が満たされている場合に発生する可能性があります。

  • [ 自動選択] 設定 は、[自動選択] Internet Explorer。 この設定はInternet Explorer HTML ページに使用されるコード ページを特定するのに役立ちます。
  • [ システム ロケール] 設定は、タグで指定された文字セットとは異 META なります。
  • 文字 META セットを指定するタグは、MSHTML によって解析される HTML データの最初のチャンクに含めではありません。 通常、これはタグが最初の 256 バイトのデータの後のどこかに位置し、最初の 4 KB のデータの残りの部分を通じてあるという意味です。
  • サーバーが低速なシステムである場合、または応答にタグが含まれるよう、サーバーが HTTP 応答の最初の部分を壊 META します。 この問題は、チャンク エンコードを有効にした場合に発生する可能性があります。
  • このInternet Explorer解析する初期チャンクをメソッドに渡す場合、Internet Explorer IMultiLanguage::ConvertStringToUnicode を実行できません。

注意

この問題に寄与する可能性がある追加の条件があります。 これらの追加の条件は非常にコード固有であり、ここには記載されません。

解決方法

この問題を解決するには、以下のいずれかの方法を使用します。

  • [自動 選択] 設定を 無効Internet Explorer。
  • HTTP ヘッダーに文字セットを指定します。
  • MSHTML META で解析されたデータの最初のキロバイト内にタグを移動します。 パーサーが一度に読み取るデータの量はわかりませんが、この場所は問題を解決します。
  • サーバーの初期 HTTP 応答のサイズを大きくします。 初期サイズは 1 KB 以上である必要があります。
  • [システム ロケール] 設定が、HTML ページで指定されているタグの文字セットと一致 META する必要があります。