十六进制的数组编码后为中文字符串的做法我已实现:
Byte[] bytes = { 0x59, 0x7d, 0x76, 0x84, 0xff, 0xc, 0x90, 0xa3, 0x4f, 0x60, 0x5f, 0xd9, 0x5b, 0x8c, 0x54, 0xe, 0x5c, 0x31, 0x4f, 0x11, 0x60, 0x6f, 0x4e, 0x0, 0x4f, 0x1a, 0x30, 0x2 };Encoding enc = Encoding.BigEndianUnicode;
string output = enc.GetString(bytes, 0, bytes.Length);
解出来是“好的,那你忙完后就休息一会。”Byte[] bytes2 = { 0x43,0xed ,0x68 ,0x26 ,0x83 ,0xcd ,0x64 ,0xb1 ,0x58 ,0xee ,0x56 ,0x8b ,0xc9 ,0x64 ,0x33 ,0x9a ,0x2c ,0x36 ,0x03 ,0x01 };
bytes2 数组的数据解出来的应该是英文,不能用上面的编码方式,可是我不知道下面的两句编码方式该是什么,请会的大侠帮帮忙,谢谢了!!!

解决方案 »

  1.   

    原本的bytes2就有很多不是英文的。Byte[] bytes2 = { 0x43, 0xed, 0x68, 0x26, 0x83, 0xcd, 0x64, 0xb1, 0x58, 0xee, 0x56, 0x8b, 0xc9, 0x64, 0x33, 0x9a, 0x2c, 0x36, 0x03, 0x01 };
    List<byte> bList = new List<byte>();
    for (int i = 0; i < bytes2.Length; i++)
    {
        if ((bytes2[i] >= 'A' && bytes2[i] <= 'Z') || (bytes2[i] >= 'a' && bytes2[i] <= 'z')) bList.Add(bytes2[i]);               
    }
    Console.WriteLine(Encoding.GetEncoding("GB2312").GetString(bList.ToArray()));只保留英文,但这没多大意义。
      

  2.   

    那我怎么实现还原这个内容,像bytes就可以实现中文,我想要全部的,里面可能含有英或许还会含有中文??