MSXML4并设置编码字符串(MSXML4 and setting the encoding str

2019-10-28 23:08发布

我使用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"?>

那么,为什么不编码字符串显示出来?

Answer 1:

当您将XML保存到一个文件,你应该看到<?xml version="1.0" encoding="UTF-8"?>声明。 然而,根据该文章 ,当你使用XML文档的财产申报返回不包含编码,这似乎是由设计。 这是您所遇到的行为? 该文章指出:

这很正常。 它这样做的原因是让你可以转身并调用loadXML的以该字符串,它会工作。 如果不这样做,loadXML的将失败,错误消息:“切换从当前编码到指定的编码不支持。”



文章来源: MSXML4 and setting the encoding string
标签: c++ msxml4