簡體   English   中英

MSXML刪除了encoding =“ UTF-8”屬性

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM