Freigeben über


Internet Explorer verwendet beim Rendern einer HTML-Seite falsche Zeichensätze.

Warnung

Die eingestellte, nicht mehr unterstützte Desktop-Anwendung Internet Explorer 11 wurde durch ein Microsoft Edge-Update in bestimmten Versionen von Windows 10 dauerhaft deaktiviert. Weitere Informationen finden Sie in den Häufig gestellten Fragen zur Deaktivierung von Desktop-Apps in Internet Explorer 11.

Dieser Artikel enthält die Methoden, mit denen Sie das Problem lösen können, das Internet Explorer mithilfe des falschen Zeichensatzes eine HTML-Seite rendert.

Ursprüngliche Produktversion: Internet Explorer
Ursprüngliche KB-Nummer: 928847

Symptome

Wenn Microsoft Internet Explorer eine HTML-Seite rendert, wird der falsche Zeichensatz verwendet. Internet Explorer führt dies aus, obwohl der richtige Zeichensatz von einem META Tag auf der HTML-Seite angegeben wird.

Beispielsweise kann Internet Explorer eine japanische HTML-Seite mithilfe des Shift-JIS-Zeichensatzes rendern, auch wenn UTF-8 durch das folgende META Tag auf der HTML-Seite angegeben wird:

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

Ursache

Dieses Problem kann auftreten, wenn mindestens eine oder die folgenden Bedingungen erfüllt sind:

  • Die Einstellung "Autoauswahl " ist in Internet Explorer aktiviert. Diese Einstellung hilft Internet Explorer, die Codeseite zu bestimmen, die für die HTML-Seite verwendet wird.
  • Die Systemgebietsschema unterscheidet sich von dem Zeichensatz, der im META-Tag angegeben ist.
  • Das META Tag, das den Zeichensatz angibt, befindet sich nicht im ersten Teil der HTML-Daten, die von MSHTML analysiert werden. Dies bedeutet in der Regel, dass sich das Tag nach den ersten 256 Byte von Daten über den Rest der ersten 4 KB daten befindet.
  • Der Server ist ein langsames System, oder der Server bricht den ersten Teil der HTTP-Antwort, sodass die Antwort nicht das META Tag enthält. Dieses Problem kann auftreten, wenn Sie die Chunked-Codierung aktivieren.
  • Wenn Internet Explorer den anfänglichen Block übergibt, der an die IMultiLanguage::ConvertStringToUnicode Methode analysiert werden soll, kann internet Explorer die Konvertierung nicht ausführen.

Notiz

Es gibt zusätzliche Bedingungen, die zu diesem Problem beitragen können. Diese zusätzlichen Bedingungen sind sehr codespezifisch und werden hier nicht aufgeführt.

Lösung

Sie können dieses Problem mit einer der folgenden Methoden beheben:

  • Deaktivieren Sie die Einstellung für die automatische Auswahl in Internet Explorer.
  • Geben Sie den Zeichensatz in den HTTP-Headern an.
  • Verschieben Sie das META Tag in das erste Kilobyte von Daten, die von MSHTML analysiert werden. Obwohl wir nicht wissen, wie viele Daten der Parser zu einem Zeitpunkt liest, wird das Problem durch diesen Speicherort behoben.
  • Erhöhen Sie die Größe der anfänglichen HTTP-Antwort des Servers. Die Anfangsgröße sollte mindestens 1 KB groß sein.
  • Stellen Sie sicher, dass die Systemgebietsschemaeinstellung dem Zeichensatz des META Tags entspricht, das auf der HTML-Seite angegeben ist.