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

Unable load XML file with UTF-8 BOM marker using MSXML6

本文关键字:BOM 文件 XML UTF-8 MSXML6 加载      更新时间:2023-10-16

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

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

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

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

IXMLDOMDocument::loadXML方法需要一个BSTR,它是UTF-16编码的。有关该问题的讨论,请参阅本页。

我建议使用IXMLDOMDocument::load,它有各种过载,不需要UTF-16。