2010-08-27 57 views
0

我使用MSXML4生成XML。MSXML4並設置編碼字符串

我試圖將編碼值設置爲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"?>

那麼,爲什麼不編碼字符串顯示出來?

+1

這是 http://social.msdn.microsoft.com/Forums/en-US/msxml/thread/1726e6d6-21a5-4853-8a85-1dc7b068afba 任何幫助嗎? – 2010-08-27 19:39:08

回答

1

當您將xml保存到文件中時,您應該看到<?xml version="1.0" encoding="UTF-8"?>聲明。但是,根據此article,當您使用文檔的XML屬性返回的聲明不包含編碼,這似乎是由設計。這是你遇到的行爲嗎?該文章指出:

這是正常現象。它做到這一點的原因是,你可以轉身和 用這個字符串調用LoadXML,它會 工作。如果不這樣做, LoadXML將失敗,並顯示錯誤 消息:「從當前編碼 切換到不支持的指定編碼。」