Encoding.Unicode.GetBytes("一")[0]:0
Encoding.Unicode.GetBytes("一")[0]:78
这是为什么?“一”转成unicode怎么成 0,78了?每个字节都比127小?怎么判断它是不是汉字啊?安说汉字编码会有高字节的啊?
而且
byte[] byte1=new byte[2];
byte1[0]=0;
byte1[1]=78;
string str=Encoding.Unicode.GetString(byte1);
str:一

解决方案 »

  1.   


    Encoding.GetEncoding("gb2312").GetBytes("一")
      

  2.   

    请说仔细点,我不太懂,这是怎么回事,如果收到的是0,78怎么判断是不是中文啊,因为编码数据是我接受到的,能给我解释一下Encoding.Unicode.GetBytes的具体含义吗?
      

  3.   

    编码器可以使用 Big-Endian 字节顺序(从最高有效字节开始),也可以使用 Little-Endian 字节顺序(从最低有效字节开始)。例如,大写拉丁字母 A(码位为 U+0041)的序列化结果(十六进制)如下所示: Big-endian 字节顺序:00 00 00 41 Little-endian 字节顺序:41 00 00 00  其中Little-Endian 是默认的,想要Big-Endian 如下
    Encoding cod =new UnicodeEncoding(true,false);
               byte[] b=cod.GetBytes("一");
    汉字的utf16范围你到网上搜一下