O Explorer da Internet usa um conjunto de caracteres errado quando renderiza uma página HTML

Aviso

O aplicativo da área de trabalho desativado e sem suporte do Internet Explorer 11 está programado para ser desativado permanentemente por meio de uma atualização do Microsoft Edge em certas versões do Windows 10. Para obter mais informações, consulte Perguntas frequentes sobre a desativação do aplicativo de área de trabalho do Internet Explorer 11.

Este artigo fornece os métodos para você resolver o problema que a Internet Explorer renderiza uma página HTML usando o conjunto de caracteres incorreto.

Versão original do produto: Internet Explorer
Número de KB original: 928847

Sintomas

Quando o Microsoft Internet Explorer renderiza uma página HTML, ele usa o conjunto de caracteres errado. O Explorer da Internet faz isso mesmo que o conjunto de caracteres correto seja especificado por uma META marca na página HTML.

Por exemplo, a Internet Explorer pode renderizar uma página HTML japonesa usando o conjunto de caracteres Shift-JIS mesmo quando UTF-8 é especificado pela seguinte META marca na página HTML:

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

Motivo

Esse problema poderá ocorrer se uma ou mais ou as seguintes condições forem verdadeiras:

  • A configuração Selecionar Automaticamente está habilitada no Explorer da Internet. Essa configuração ajuda o Explorer da Internet a determinar a página de código usada para a página HTML.
  • A configuração de Localidade do Sistema difere do conjunto de caracteres especificado na META marca.
  • A META marca que especifica o conjunto de caracteres não está na primeira parte dos dados HTML analisados pelo MSHTML. Normalmente, isso significa que a marca está localizada em algum lugar após os primeiros 256 bytes de dados em até o restante dos primeiros 4 KB de dados.
  • O servidor é um sistema lento ou o servidor quebra a primeira parte da resposta HTTP para que a resposta não contenha a META marca. Esse problema poderá ocorrer se você habilitar a codificação em partes.
  • Quando o Explorer da Internet passa a parte inicial a ser analisada para o método, Explorer IMultiLanguage::ConvertStringToUnicode da Internet não pode executar a conversão.

Observação

Há condições adicionais que podem contribuir para esse problema. Essas condições adicionais são muito específicas de código e não estão listadas aqui.

Resolução

Para resolver esse problema, use um dos seguintes métodos:

  • Desabilite a configuração Selecionar Automaticamente no Explorer da Internet.
  • Forneça o conjunto de caracteres nos cabeçalhos HTTP.
  • Mova a META marca para dentro do primeiro quilobyte de dados analisados pelo MSHTML. Embora não saibamos quantos dados o analisador lê por vez, esse local resolve o problema.
  • Aumente o tamanho da resposta HTTP inicial do servidor. O tamanho inicial deve ser de pelo menos 1 KB.
  • Verifique se a configuração do System Locale corresponde ao conjunto de caracteres da META marca especificada na página HTML.