通过.net套接字发送XML序列化对象

通过.net套接字发送XML序列化对象,.net,sockets,xml-serialization,.net,Sockets,Xml Serialization,我正在使用TCP套接字从服务器向客户端发送xml序列化对象。我在将字节数组转换为xml字符串时遇到一些问题。我不知道是否使用了正确的解码器,但当客户端接收到字节数组时,xml字符串的前缀是“?”。因此,我的xml字符串的第一行变得类似于?,我无法反序列化,因为它不再是有效的xml 我尝试了UTF-8和Ascii编码 如有任何意见,我们将不胜感激 谢谢 Bibek-DawadiASCII将用?替换无法识别的字节。有可能这就是正在发生的事情 从你的问题很难判断问题出在哪里;张贴您的发送和接收代码将有

我正在使用TCP套接字从服务器向客户端发送xml序列化对象。我在将字节数组转换为xml字符串时遇到一些问题。我不知道是否使用了正确的解码器,但当客户端接收到字节数组时,xml字符串的前缀是“?”。因此,我的xml字符串的第一行变得类似于
,我无法反序列化,因为它不再是有效的xml

我尝试了UTF-8和Ascii编码

如有任何意见,我们将不胜感激

谢谢


Bibek-Dawadi

ASCII将用
替换无法识别的字节。有可能这就是正在发生的事情


从你的问题很难判断问题出在哪里;张贴您的发送和接收代码将有所帮助。对于通过TCP/IP发送XML,我也有一些建议。

如果您得到一个?在字符串前面,表示已将其保存为UTF8。很可能您已经序列化为UTF(UTF8?),但在某个时候您正在将其转换为ASCII。我猜在收到后

避免在任何地方将其转换为
字符串
,而是直接处理
字节数组
,这样应该可以

背景:
.
只有7位字节,因此在转换为ASCII时替换128-255范围内的任何字节。

:参见第6节:BOM

能否显示与从套接字发送和接收数据相关的代码?谢谢Stephen。但我不能将XML直接转换为byte[],因为我正在使用delemiter实现消息框架。这就是我序列化对象的原因,获取xml字符串,使用delemiter将此xml字符串的前缀和后缀转换为新字符串,转换为字节[],然后通过TCP/IP套接字发送它。将最终字符串转换为字节[]时,我使用UTF-8编码,将字节[]转换回字符串时,我也使用UTF-8编码。但我不能将XML直接转换为字节[],因为我使用delemiter实现消息帧。这就是我序列化对象的原因,获取xml字符串,使用delemiter将此xml字符串的前缀和后缀转换为新字符串,转换为字节[],然后通过TCP/IP套接字发送它。将最终字符串转换为字节[]时,我使用UTF-8编码,将字节[]转换回字符串时,我也使用UTF-8编码。