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ù o più 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 analizzato da MSHTML. In genere, questo significa che il tag si trova in un punto successivo ai primi 256 byte di dati nella parte restante dei primi 4 KB di dati.
  • Il server è un sistema lento oppure 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.

Nota

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 il problema, utilizzare uno dei seguenti metodi:

  • Disabilitare l'impostazione Selezione automatica in Internet Explorer.
  • Specificare il set di caratteri nelle intestazioni HTTP.
  • Spostare il META tag all'interno del primo kilobyte di dati analizzati 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. La dimensione iniziale deve essere di almeno 1 KB.
  • Assicurarsi che l'impostazione Impostazioni locali di sistema corrisponda al set di caratteri del META tag specificato nella pagina HTML.