HRESULT C00CE56E сообщение об ошибке "Система не поддерживает указанную кодировку" с MSXML

Эта статья поможет устранить проблему, из-за System Does Not Support the Specified Encoding C00CE56E сообщение об ошибке HRESULT с помощью MSXML.

Исходная версия продукта: Microsoft XML
Исходный номер базы знаний: 304625

Симптомы

При загрузке удаленного XML-документа с веб-сервера с помощью XMLHTTP или XMLDocument::Load может появилось следующее сообщение об ошибке:

HRESULT C00CE56E
Система не поддерживает указанную кодировку.

Эта ошибка наиболее распространена при использовании платформы приложений среднего уровня на основе Java.

Причина

Начиная с версии 2.6, MSXML передает все XML-документы через Mlang.dll для проверки их кодирования. Если Mlang.dll встречает нестандартную строку кодирования, она возвращает ошибку.

"ISO8859_1" — это каноническое представление строки кодировки символов latin-1 в библиотеках языка Java и классов. Тем не менее, стандарт, определенный Центром по назначенным в Интернете номерам, — "ISO-8859-1", который не является допустимым псевдонимом.

Решение

Чтобы устранить эту проблему, выполните одно из следующих действий.

  • Измените строку кодировки символов в соответствующей серверной среде Java с ISO8859_1 на ISO-8859-1.

  • Используйте IXMLDOMDocument::get_responseBody для получения данных в качестве необработанного буфера байтов. Если вы разрабатываете приложение в Microsoft Visual C++, вы можете определить дескриптор HGLOBAL для данных и использоватьCreateStreamOnHGlobal, чтобы упростить обработку данных.

Ссылки

Дополнительные сведения см. в разделе Наборы символов.