为了账号安全,请及时绑定邮箱和手机立即绑定

Encoding 字符编码的问题

Encoding 字符编码的问题

C#
牧羊人nacy 2018-12-12 14:08:16
socket.send 发送的字符串,如下 <br> strS = "6800000000000068010243C3D916" <br> Byte[] bytesSent = Encoding.Unicode.GetBytes(strS); <br> socket.Send(bytesSent, bytesSent.Length, 0); <br> <br> <br> 接收到的怎么是些这样的内容。而不是我发送的包. <br> 用别的测试工具发下去,接收的显示正常。 <br> &lt; &lt;--服务器已收到:(56)6 <br> &lt; &lt;--36&nbsp; 00&nbsp; 38&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 36&nbsp; 00&nbsp; 38&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 31&nbsp; 00&nbsp; 30&nbsp; 00&nbsp; 32&nbsp; 00&nbsp; 34&nbsp; 00&nbsp; 33&nbsp; 00&nbsp; 43&nbsp; 00&nbsp; 33&nbsp; 00&nbsp; 44&nbsp; 00&nbsp; 39&nbsp; 00&nbsp; 31&nbsp; 00&nbsp; 36&nbsp; 00&nbsp; <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);

查看完整回答
反对 回复 2018-12-16
?
湖上湖

TA贡献2003条经验 获得超2个赞

Encoding.Unicode 的意思,好象是 UTF16, 每个字符,不论中英文,都是用两位 byte 来表示。

老兄的意思,可能是要用 Encoding.UTF8 来处理。


查看完整回答
反对 回复 2018-12-16
  • 2 回答
  • 0 关注
  • 721 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信