[英]MSXML removes the encoding=“UTF-8” attribute
我正在从文件中读取以下XML文本:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SampleXML>...</SampleXML>
然后使用IXMLDomDocument :: loadXML加载UTF-8文本。 然后,我操纵XML并调用IXMLDomDocument :: Getxml()以获取修改后的XML的_bstr_t。 _bstr_t如下所示:
<?xml version="1.0" standalone="yes"?>
<ModifiedSampleXML>...</ModifiedSampleXML>
标头中的encoding =“ UTF-8”属性消失了。 但是,如果我调用IXMLDomDocument :: save(FileName)将XML保存到文件中,则当我打开文件时,会看到保留了encoding =“ UTF-8”属性。
为什么在我调用Getxml()时没有encoding =“ UTF-8”属性? 如何告诉MSXML始终保留此属性? (不仅是保存时)
删除了属性“ encoding ='UTF-8'”,因为Getxml()
以宽字符(16位)字符串返回已加载的XML。 您可以通过查看返回的_bstr_t
拥有的内存来验证这一点。
MSXML保留实际上是16位的编码为8位的属性,这是不正确的。
但是,如果加载具有“ encoding ='UTF-16'”属性的unicode xml文件,则会看到Getxml()
不会删除该属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.