通过软件获取tcp包的数组为16进制byte数组,请问如何还原为字符串啊。不是“00 11 50 5a 66 36 40 16”这样子的字符串。是Unicode码的字符串。就好象“hello world”的

解决方案 »

  1.   

    按空格分割出来申明 byte[] data = new byte[长度为分割的长度]
    循环数组
    data[0]=Convert.ToByte("00", 16)
    data[1]=Convert.ToByte("11", 16)
    data[2]=Convert.ToByte("50", 16)
    ……编码 Encoding.UTF8.GetString(data)
      

  2.   

    看是什么编码的了,如果是,Encoding有几种编码,自己对应着看看
      

  3.   

    看你发送方的编码方式 Encoding.UTF8 是utf-8
      

  4.   

    http://apps.hi.baidu.com/share/detail/15060766
    看这个链接 主要是第二条列举出的那些函数 试一试 应该可以
      

  5.   

    今天真倒霉,亏绕一天了。代码如下:
    for (int ii = 0; ii < tcpPacket.Bytes.Length; ii++)
    {       textBox4.AppendText(char.ToString((char)tcpPacket.Bytes[ii]));
     }
    这样写就可以显示在textBox4中StringBuilder sb = new StringBuilder();for (int ii = 0; ii < tcpPacket.Bytes.Length; ii++)
    {      sb.Append(char.ToString((char)tcpPacket.Bytes[ii]));
    }
    textBox4.AppendText(sb.ToString())就什么也没有,怎么回事啊。
      

  6.   

    有这事?为什么不行?for (int ii = 0; ii < tcpPacket.Bytes.Length; ii++)
    {
     string test char.ToString((char)tcpPacket.Bytes[ii]);//这一行设断点、看看test到底有没有值
    sb.Append(char.ToString((char)tcpPacket.Bytes[ii]));
    }
    string s1 =sb.ToString();//看看s1是否有值邪门了是不是你看错了啊 
    }
      

  7.   

    byte[] bt;
     string str = System.Text.Encoding.Default.GetString(bt);