XML解析XMLSerialize,无效字符0x10

时间:2013-11-02 04:47:44

标签: c# xml xml-serialization

所以我试图通过使用XML进行通信的旧游戏通过套接字检索一些数据。当来自游戏的消息下线时,它会显示如下:

<?xml version=\"1.0\"?><message><type>SERVER</type><user>TestDeleteOrKillMe</user><cmd>PRIVATE_MSG</cmd><host>65.255.81.81</host><msg>57</msg></message>

然而,你在这里看不到的是因为这篇文章不会显示字符,因为在msg标签中的数字57之后有两个0x10字符,显示为空框。这些框的目的是描述发送到服务器和从服务器发送的参数。例如,数字57对包含变量的消息代码进行协调,然后在0x10之后发送变量的内容。

我的问题是使用XmlSerialize序列化从缓冲区中提取的字节会产生无效的字符相关错误,即:

 {"'', hexadecimal value 0x10, is an invalid character. Line 1, position 135."}

问题是如何解决这个问题?有没有办法配置Serializer接受这个字符或一些黑客来使这个工作?

1 个答案:

答案 0 :(得分:0)

一个可能的问题是XML 1.0标准明确排除了0x10。见this article。 您可以尝试更改为XML 1.1;否则你可能必须自己“手动”解析XML,或者至少在反序列化之前进行替换(例如用垂直管替换0x10)。