Internet Explorer использует неправильный набор символов при отрисовывии страницы HTML

Важно!

Настольное приложение Internet Explorer 11 будет снято с службы поддержки 15 июня 2022 г. (список того, что имеется в области, см. в faq). Те же приложения и сайты IE11, которые вы используете сегодня, могут открываться в Microsoft Edge режиме Internet Explorer. Подробнее см. здесь.

В этой статье данная статья предоставляет методы для решения проблемы, которую Internet Explorer отрисовывает HTML-страницу с помощью неправильного набора символов.

Оригинальная версия продукта:   Internet Explorer
Исходный номер КБ:   928847

Симптомы

Когда Microsoft Internet Explorer отрисовывает HTML-страницу, она использует неправильный набор символов. Internet Explorer делает это, даже если правильный набор символов указан тегом META на странице HTML.

Например, Internet Explorer может отрисовки японской HTML-страницы с помощью набора символов Shift-JIS, даже если UTF-8 указан следующим тегом на META странице HTML:

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

Причина

Эта проблема может возникнуть, если одно или несколько или несколько условий являются верными:

  • Параметр Auto-Select включен в Internet Explorer. Этот параметр помогает Internet Explorer определить страницу кода, используемую для HTML-страницы.
  • Параметр System Locale отличается от набора символов, указанного в META теге.
  • Тег, который указывает набор символов, не находится в первом фрагменте HTML-данных, которые анализирует META MSHTML. Как правило, это означает, что тег расположен где-то после первых 256 bytes данных через оставшуюся часть первых 4 КБ данных.
  • Сервер является медленной системой, или сервер нарушает первую часть ответа HTTP, чтобы в ответе не содержался META тег. Эта проблема может возникнуть, если включить кодиуминг с фрагментами.
  • Когда Internet Explorer передает начальный фрагмент, который необходимо разрезать, IMultiLanguage::ConvertStringToUnicode internet Explorer не может выполнить преобразование.

Примечание

Существуют дополнительные условия, которые могут способствовать этой проблеме. Эти дополнительные условия очень специфически для кода и не указаны здесь.

Решение

Для решения этой проблемы воспользуйтесь одним из указанных ниже способов.

  • Отключение параметра Авто-Выбор в Internet Explorer.
  • Предоформить набор символов в http-загонах.
  • Переместите META тег в первый килобайт данных, который будет размежеваем с помощью MSHTML. Несмотря на то, что мы не знаем, сколько данных считывщик читает одновременно, это расположение позволит устранить проблему.
  • Увеличение размера исходного http-ответа сервера. Начальный размер должен быть не менее 1 КБ.
  • Убедитесь, что параметр System Locale соответствует набору символов тега, указанного META на странице HTML.