HRESULT C00CE56E messaggio di errore 'System Does Not Support the Specified Encoding' con MSXML

Questo articolo consente di risolvere il problema che HRESULT C00CE56E messaggio di System Does Not Support the Specified Encoding errore con MSXML.

Versione originale del prodotto: Microsoft XML
Numero KB originale: 304625

Sintomi

Quando si carica un documento XML remoto da un server Web usando XMLHTTP o XMLDocument::Load, è possibile che venga visualizzato il messaggio di errore seguente:

HRESULT C00CE56E
Il sistema non supporta la codifica specificata.

Questo errore è più diffuso quando si usa un framework dell'applicazione di livello intermedio basato su Java.

Causa

A partire dalla versione 2.6, MSXML passa tutti i documenti XML attraverso Mlang.dll per verificarne la codifica. Se Mlang.dll rileva una stringa di codifica non standard, restituisce un errore.

'ISO8859_1' è la rappresentazione canonica della stringa di codifica dei caratteri Latin-1 nel linguaggio Java e nelle librerie di classi. Lo standard definito da Internet Assigned Numbers Authority, tuttavia, è "ISO-8859-1", che non è un alias accettato.

Risoluzione

Per risolvere questo problema, eseguire una delle seguenti operazioni:

  • Modificare la stringa di codifica dei caratteri nell'ambiente server Java pertinente da 'ISO8859_1' a 'ISO-8859-1'.

  • Usare IXMLDOMDocument::get_responseBody per recuperare i dati come buffer non elaborato di byte. Se si sviluppa l'applicazione in Microsoft Visual C++, è possibile definire un handle HGLOBAL per i dati e usarlo CreateStreamOnHGlobal per semplificare l'elaborazione dei dati.

Riferimenti

Per altre informazioni, vedere Set di caratteri.