Condividi tramite


Internet Explorer usa un set di caratteri errato quando esegue il rendering di una pagina HTML

Avviso

L'applicazione desktop Internet Explorer 11, ritirata e fuori supporto, è stata disabilitata in modo permanente tramite un aggiornamento di Microsoft Edge su alcune versioni di Windows 10. Per altre informazioni, vedere Domande frequenti sul ritiro delle app desktop di Internet Explorer 11.

Questo articolo fornisce i metodi per risolvere il problema per cui Internet Explorer esegue il rendering di una pagina HTML usando il set di caratteri non corretto.

Versione originale del prodotto: Internet Explorer
Numero KB originale: 928847

Sintomi

Quando microsoft Internet Explorer esegue il rendering di una pagina HTML, usa il set di caratteri errato. Internet Explorer esegue questa operazione anche se il set di caratteri corretto è specificato da un META tag nella pagina HTML.

Ad esempio, Internet Explorer può eseguire il rendering di una pagina HTML giapponese usando il set di caratteri SHIFT-JIS anche quando UTF-8 è specificato dal tag seguente META nella pagina HTML:

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

Causa

Questo problema può verificarsi se si verificano una o più condizioni o le condizioni seguenti:

  • L'impostazione Selezione automatica è abilitata in Internet Explorer. Questa impostazione consente a Internet Explorer di determinare la tabella codici usata per la pagina HTML.
  • L'impostazione Impostazioni locali di sistema è diversa dal set di caratteri specificato nel META tag .
  • Il META tag che specifica il set di caratteri non si trova nel primo blocco di dati HTML analizzati da MSHTML. In genere, questo significa che il tag si trova da qualche parte dopo i primi 256 byte di dati nel resto dei primi 4 KB di dati.
  • Il server è un sistema lento o il server interrompe la prima parte della risposta HTTP in modo che la risposta non contenga il META tag . Questo problema può verificarsi se si abilita la codifica in blocchi.
  • Quando Internet Explorer passa il blocco iniziale da analizzare al IMultiLanguage::ConvertStringToUnicode metodo, Internet Explorer non può eseguire la conversione.

Annotazioni

Esistono condizioni aggiuntive che possono contribuire a questo problema. Queste condizioni aggiuntive sono molto specifiche del codice e non sono elencate qui.

Risoluzione

Per risolvere questo problema, scegliere una delle alternative seguenti:

  • Disabilitare l'impostazione Selezione automatica in Internet Explorer.
  • Specificare il set di caratteri nelle intestazioni HTTP.
  • Spostare il META tag in all'interno del primo kilobyte di dati analizzato da MSHTML. Anche se non si conosce la quantità di dati letti dal parser alla volta, questa posizione risolverà il problema.
  • Aumentare le dimensioni della risposta HTTP iniziale del server. Le dimensioni iniziali devono essere almeno 1 KB.
  • Assicurarsi che l'impostazione Impostazioni locali di sistema corrisponda al set di caratteri del META tag specificato nella pagina HTML.