socket.BeginReceive(receive_buf_bytes, 0, len_receive_buf, SocketFlags.None, new AsyncCallback(CallReceive), this);监听得到的 字节数组  receive_buf_bytes   如何转换为字符串..
我用呢下面两个方法转换为字符串.....可是都是无法阅读的乱码..我主要是监听HTTP请求....数据包大部分都是可以阅读的字符串.....
return Convert.ToBase64String(receive_buf_bytes);
return Encoding.ASCII.GetString(receive_buf_bytes, 0, total_packet_length);
我看  smsniff  就可以把监听到的  数据包 转换为字符串.....仍然也有些不能转换...但是大部分内容都可以转化为可以阅读的字符串......

解决方案 »

  1.   

    传给你数据那边是用什么编码的啊,如果那边是.ASCII.则你可以用Encoding.ASCII.GetString(receive_buf_bytes, 0, total_packet_length); 
    如果是gb2312那你用Encoding.ASCII.GetString(receive_buf_bytes, 0, total_packet_length); 只能是乱码啊
      

  2.   

    我用  Encoding.ASCII.GetString   其他的也试过呢..........   byte[]  结果只得到一个  E
      

  3.   

    转化一下编码格式UTF-8,GB2312…………
    你的是异步传输?
      

  4.   

    一个  byte[]  我用Encoding.GetEncoding("xxx").GetString   转为字符串后.......放进 textbox  里面...只显示一个  E
    字符串长度有  100 多...........为什么只能显示一个E呢......如果用其他字符串替换那些不能显示的字符串
    我在命令行下用 Console.WriteLine()  可以显示那些字符串  但是  winForm 下不行