使用MSXML6无法加载带有UTF-8 BOM标记的XML文件

Ash*_*sha 3 c++ unicode msxml utf-8

我有一个XML文件,EF BB BF开头有UTF-8 BOM标记().

它还包含encodingas <?xml version="1.0" encoding="UTF-8" ?>.

我正在尝试加载此XML文件IXMLDOMDocument::LoadXML,但无法加载此文档.如果我删除BOM标记,它可以完美地工作.

我的问题是在这种情况下使用BOM标记是错误的还是MSXML的错误(确切地说是MSXML6)?

Fre*_*abe 5

IXMLDOMDocument::loadXML方法需要a BSTR,UTF-16编码.有关问题的讨论,请参阅此页面.

我建议IXMLDOMDocument::load改用,它有各种不需要UTF-16的重载.