Internet Explorer usa un juego de caracteres incorrecto cuando representa una página HTML

En este artículo se proporcionan los métodos para resolver el problema en el que Internet Explorer representa una página HTML con un juego de caracteres incorrecto.

Versión del producto original:   Internet Explorer
Número de KB original:   928847

Síntomas

Cuando Microsoft Internet Explorer representa una página HTML, usa un juego de caracteres incorrecto. Internet Explorer hace esto aunque la META etiqueta de la página HTML especifique el juego de caracteres correcto.

Por ejemplo, Internet Explorer puede representar una página HTML en japonés usando el juego de caracteres Shift-JIS incluso cuando la META etiqueta siguiente en la página HTML especifica UTF-8:

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

Causa

Este problema puede producirse si se cumplen una o varias de las condiciones siguientes:

  • La opción selección automática está habilitada en Internet Explorer. Esta configuración ayuda a Internet Explorer a determinar la página de códigos que se usa para la página HTML.
  • La configuración regional del sistema difiere del juego de caracteres que se especifica en la META etiqueta.
  • La META etiqueta que especifica el juego de caracteres no se encuentra en el primer fragmento de datos HTML analizados por mshtml. Normalmente, esto significa que la etiqueta se encuentra en algún lugar después de los primeros 256 bytes de datos en el resto de los primeros 4 KB de datos.
  • El servidor es un sistema lento o el servidor interrumpe la primera parte de la respuesta HTTP para que la respuesta no contenga la META etiqueta. Este problema puede producirse si habilita la codificación fragmentada.
  • Cuando Internet Explorer pasa el fragmento inicial que se va a analizar al IMultiLanguage::ConvertStringToUnicode método, Internet Explorer no puede realizar la conversión.

Nota

Existen condiciones adicionales que pueden contribuir a este problema. Estas condiciones adicionales son muy específicas del código y no se enumeran aquí.

Solución

Para solucionar el problema, utilice uno de los siguientes métodos:

  • Deshabilite la opción selección automática en Internet Explorer.
  • Especifique el juego de caracteres en los encabezados HTTP.
  • Mover la META etiqueta dentro del primer kilobyte de datos analizados por mshtml. Aunque no sabemos cuántos datos lee el analizador a la vez, esta ubicación resolverá el problema.
  • Aumentar el tamaño de la respuesta HTTP inicial del servidor. El tamaño inicial debe ser de al menos 1 KB.
  • Asegúrese de que la configuración regional del sistema coincida con el juego de caracteres de la META etiqueta especificada en la página HTML.