Internet Explorer utilise un jeu de caractères incorrect lorsqu’il affiche une page HTML

Avertissement

L’application de bureau Internet Explorer 11, mise hors service et dont le support a pris fin, a été désactivée définitivement via une mise à jour Microsoft Edge sur certaines versions de Windows 10. Pour plus d’informations, consultez le forum aux questions sur la mise hors service de l’application de bureau Internet Explorer 11.

Cet article fournit les méthodes permettant de résoudre le problème lié au rendu d’une page HTML par Internet Explorer à l’aide d’un jeu de caractères incorrect.

Version d’origine du produit : Internet Explorer
Numéro de la base de connaissances d’origine : 928847

Symptômes

Lorsque Microsoft Internet Explorer affiche une page HTML, il utilise le jeu de caractères incorrect. Internet Explorer effectue cette opération même si le jeu de caractères correct est spécifié par une META balise dans la page HTML.

Par exemple, les Explorer Internet peuvent afficher une page HTML japonaise à l’aide du jeu de caractères Maj-JIS même lorsque UTF-8 est spécifié par la balise suivante META dans la page HTML :

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

Cause

Ce problème peut se produire si une ou plusieurs conditions ou les conditions suivantes sont remplies :

  • Le paramètre Sélection automatique est activé dans internet Explorer. Ce paramètre permet à Internet Explorer de déterminer la page de codes utilisée pour la page HTML.
  • Le paramètre Paramètres régionaux système diffère du jeu de caractères spécifié dans la META balise.
  • La META balise qui spécifie le jeu de caractères ne se trouve pas dans le premier bloc de données HTML analysé par MSHTML. En règle générale, cela signifie que la balise se trouve quelque part après les 256 premiers octets de données sur jusqu’au reste des 4 premiers Ko de données.
  • Le serveur est un système lent ou le serveur interrompt la première partie de la réponse HTTP afin que la réponse ne contienne pas la META balise . Ce problème peut se produire si vous activez l’encodage segmenté.
  • Lorsque l’Explorer Internet passe le bloc initial à analyser à la IMultiLanguage::ConvertStringToUnicode méthode, Internet Explorer ne peut pas effectuer la conversion.

Remarque

D’autres conditions peuvent contribuer à ce problème. Ces conditions supplémentaires sont très spécifiques au code et ne sont pas répertoriées ici.

Résolution

Pour résoudre ce problème, appliquez l’une des méthodes suivantes :

  • Désactivez le paramètre Sélection automatique dans Internet Explorer.
  • Fournissez le jeu de caractères dans les en-têtes HTTP.
  • Déplacez la META balise vers dans le premier kilo-octet de données analysé par MSHTML. Bien que nous ne sachions pas la quantité de données lues par l’analyseur à la fois, cet emplacement résout le problème.
  • Augmentez la taille de la réponse HTTP initiale du serveur. La taille initiale doit être d’au moins 1 Ko.
  • Assurez-vous que le paramètre Paramètres régionaux système correspond au jeu de caractères de la META balise spécifiée dans la page HTML.