繁体   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