C#将序列化对象的字节转换为字符串

C#将序列化对象的字节转换为字符串,c#,regex,serialization,tcp,deserialization,C#,Regex,Serialization,Tcp,Deserialization,我现在有一个问题,我不知道如何解决 技术进步是从TCP客户端向TCP服务器发送字节。 发送的消息如下所示:1-[BYTES-OF-SERIALIZED-OBJECT] 现在我必须将这些字节(从字节数组)转换为字符串才能使用正则表达式 有人有办法解决这个问题吗?因为当我将字节数组转换为字符串时,没有编码可以解码。 也许我必须将方括号中的序列化字节转换成不同的内容,然后再转换回来?有什么想法吗?解决方案是将对象序列化为base64编码字符串。现在发送的消息如下所示:(1)[BASE64STRING-

我现在有一个问题,我不知道如何解决

技术进步是从TCP客户端向TCP服务器发送字节。 发送的消息如下所示:1-[BYTES-OF-SERIALIZED-OBJECT] 现在我必须将这些字节(从字节数组)转换为字符串才能使用正则表达式

有人有办法解决这个问题吗?因为当我将字节数组转换为字符串时,没有编码可以解码。
也许我必须将方括号中的序列化字节转换成不同的内容,然后再转换回来?有什么想法吗?

解决方案是将对象序列化为base64编码字符串。现在发送的消息如下所示:(1)[BASE64STRING-OF-SERIALIZED-OBJECT]。
现在我可以使用regex,不必再次格式化base64字符串。

您可以查找:
Encoding.UTF8.GetString()
正如我所写的,没有编码工作。当我尝试使用它并在MessageBox中显示完整消息时,我只得到“1-[”,并且缺少字节。因此,您正在尝试正则化非asc ii数据。我在谷歌上搜索了它,第一个建议:我想您不理解我的问题。我对正则化没有问题。我想您必须删除“1”-['和结束方括号。但是您没有告诉我们字节是什么类型的数据。您有示例消息吗?这很可能是因为数据包含空字符(值为0的字节)。空字符通常表示字符串的结尾,这会导致大多数控件在该点之后停止渲染文本。发送不总是文本的字符串时,应始终使用Base64。