0

我使用 MSXML4 生成 XML。

我正在尝试将编码值设置为 UTF-8。

这是我的代码:

const _bstr_t k_XML_Tag_Name ("xml");
const _bstr_t k_Processing_Tag_Name ("version=\"1.0\" encoding=\"utf-8\"");

MSXML2::IXMLDOMProcessingInstructionPtr pProccessingInstruction = m_pXmlDoc->createProcessingInstruction(k_XML_Tag_Name, k_Processing_Tag_Name);

HRESULT result = m_pXmlDoc->appendChild(pProccessingInstruction);

result总是S_FALSE,预处理字符串是:

<?xml version="1.0"?>

那么,为什么没有显示编码字符串?

4

1 回答 1

1

当您将 xml 保存到文件时,您应该会看到<?xml version="1.0" encoding="UTF-8"?>声明。但是,根据这篇文章,当您使用XML文档的属性时,返回的声明不包含编码,这似乎是设计使然。这是您遇到的行为吗?文章指出:

这个是正常的。这样做的原因是您可以转身并使用此字符串调用 LoadXML,它会起作用。如果不这样做,LoadXML 将失败并显示错误消息:“从当前编码切换到不支持的指定编码”。

于 2010-08-27T20:28:58.197 回答