其他分享
首页 > 其他分享> > c – 使用MSXML6无法加载带有UTF-8 BOM标记的XML文件

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

作者:互联网

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

它还包含编码为<?xml version =“1.0”encoding =“UTF-8”?>.

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

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

解决方法:

IXMLDOMDocument::loadXML方法需要BSTR,它是UTF-16编码的.有关该问题的讨论,请参见this page.

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

标签:c,unicode,utf-8,msxml
来源: https://codeday.me/bug/20190902/1790551.html