2012-03-08 2 views
3

У меня есть XML-файл, который имеет маркер спецификации UTF-8 (EF BB BF) в начале.Невозможно загрузить XML-файл с маркером спецификации UTF-8 с использованием MSXML6

Он также содержит encoding как <?xml version="1.0" encoding="UTF-8" ?>.

Я пытаюсь загрузить этот XML-файл с помощью IXMLDOMDocument::LoadXML, который не может загрузить этот документ. Если я удалю маркер спецификации, он отлично работает.

Мой вопрос Неправильно ли иметь маркер спецификации в этом случае или это ошибка с MSXML (точнее, MSXML6)?

+1

Вы проверили это? : http://stackoverflow.com/questions/2109767/msxmls-loadxml-fails-to-load-even-well-formed-xml может быть полезно – rkosegi

ответ

5

Метод IXMLDOMDocument::loadXML ожидает BSTR, который кодируется UTF-16. См. this page для обсуждения проблемы.

Я предлагаю вместо этого использовать IXMLDOMDocument::load, который имеет различные перегрузки, которые не требуют UTF-16.