[英]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.