socket.send 发送的字符串,如下 <br> strS = "6800000000000068010243C3D916" <br> Byte[] bytesSent = Encoding.Unicode.GetBytes(strS); <br> socket.Send(bytesSent, bytesSent.Length, 0); <br> <br> <br> 接收到的怎么是些这样的内容。而不是我发送的包. <br> 用别的测试工具发下去,接收的显示正常。 <br> < <--服务器已收到:(56)6 <br> < <--36 00 38 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 36 00 38 00 30 00 31 00 30 00 32 00 34 00 33 00 43 00 33 00 44 00 39 00 31 00 36 00 <br> <br> <br> 可能是Encoding转换有问题,C#能用的编码都试了,还是不行。谁知道请指教,多谢了。 <br> Encoding.Unicode <br> ASCII <br> Default <br> UTF32 <br> UTF8 <br> UTF7 <br> 这些都试过,不行。
2 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
36 00 38 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 36 00 38 00 30 00 31 00 30 00 32 00 34 00 33 00 43 00 33 00 44 00 39 00 31 00 36 00 这个序列是你服务器打印的还是其他工具打印的?这个序列是正确的,和下面代码转换 出来的字节序列是一样的。只不过是16进制表示。 strS = "6800000000000068010243C3D916" Byte[] bytesSent = Encoding.Unicode.GetBytes(strS);
湖上湖
TA贡献2003条经验 获得超2个赞
Encoding.Unicode 的意思,好象是 UTF16, 每个字符,不论中英文,都是用两位 byte 来表示。
老兄的意思,可能是要用 Encoding.UTF8 来处理。
- 2 回答
- 0 关注
- 721 浏览
添加回答
举报
0/150
提交
取消