首页 新闻 会员 周边

求教,如果把raw socket抓到的数据包中的data转换成中文?

0
悬赏园豆:50 [已关闭问题] 关闭于 2015-05-20 16:11

数据包可以抓取到,但是不知道如何把byte[]转换成中文,已经用过好多办法了,还是无法解决,求高手.

关于这个问题,园子里也有其他同学遇到过,不过貌似也是没有解决.

http://www.cnblogs.com/onlytiancai/archive/2007/10/14/924103.html

只会造轮子的主页 只会造轮子 | 老鸟四级 | 园豆:2274
提问于:2015-03-12 14:31
< >
分享
所有回答(1)
0

byte[]转字符串,只要编码正确,很容易转出来吧。

幻天芒 | 园豆:37175 (高人七级) | 2015-03-12 15:09

你说的是正常的byte[],因为网络传输的时候,会有所差别,比如高位码和低位码的顺序什么的.所以直接转换是转不出来的.

支持(0) 反对(0) 只会造轮子 | 园豆:2274 (老鸟四级) | 2015-03-12 15:17

@创业公司招技术人员.地点在沧州.薪资私聊: 好吧,你这个太高档了。。。

 byte[] managedArray = new byte[iLength];
 Marshal.Copy(pData, managedArray, 0, iLength);
 var ss = Encoding.Default.GetString(managedArray);

这是处理socket的数据代码,其中pData是IntPtr类型的,iLength 是pData的长度,int类型的。你看看有没有帮助。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2015-03-12 15:29

@幻天芒: 这样是没有办法转过来的,byte[]应该是经过某种处理,然后再转换,才有可能转换成功.直接转换是转不过来的.

支持(0) 反对(0) 只会造轮子 | 园豆:2274 (老鸟四级) | 2015-03-12 16:02

@创业公司招技术人员.地点在沧州.薪资私聊: 那抱歉了,没处理过这种。为嘛不是IntPtr类型的呢。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2015-03-12 16:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册