簡體   English   中英

如何將STX / ETX(C0控制代碼)寫入BSTR緩沖區IXMLDOMElement *

[英]How to write the STX / ETX ( C0 control code) into the BSTR buffer IXMLDOMElement*

我有一個應用程序正在傳遞一個(BSTR * ProfileXml)作為out參數。 因此,我在使用SysAllocString(Profile)分配配置文件后發送配置文件

WCHAR   Profile[] = 
L"<IhvSecurity xmlns=\"http://www.sampleihv.com/nwifi/profile\">"
L"<IHVSecurityParam2>parameter value</IHVSecurityParam2>"
L"</IhvSecurity>";

幾乎所有ascii字符的參數值都可以正常工作(不包括C0代碼,如STX ascii代碼2 ETX ascii代碼3)。 一旦我發送STX或ETX那個應用程序發送錯誤並要求有效的xml緩沖區,我就在使用IXMLDOMElement方法來加載配置文件緩沖區,修改緩沖區並再次保存緩沖區。 我沒有提到Profile字符串緩沖區中的編碼默認為utf-8。

所以我在這里做錯了事,或者我們不能在xml中使用STX / ETX? MSMXL解析器無法解析它們。 或者他們以某種方式/ API將其寫入到param緩沖區的節點中。

任何幫助將不勝感激

謝謝

沒錯, 您不能在XML 1.0中使用控制字符 有關有效范圍,請參閱規格。 XML 1.1增加了對這些控制字符的支持,但是我不認為MSXML支持XML 1.1。

作為解決方法,您可以實現某種轉義方案,然后在另一端對其進行解碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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