【问题标题】:Unable load XML file with UTF-8 BOM marker using MSXML6无法使用 MSXML6 加载带有 UTF-8 BOM 标记的 XML 文件
【发布时间】:2012-03-08 08:34:03
【问题描述】:

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

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

我正在尝试使用 IXMLDOMDocument::LoadXML 加载此 XML 文件,但无法加载此文档。如果我删除 BOM 标记,它会完美运行。

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

【问题讨论】:

标签: c++ unicode utf-8 msxml


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-10-20
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 2011-03-08
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多