char c = '你';
            int a = (int)c;//a=20320
             c = (char)a;//c='你'
            a = (int)c;这里 a = (int)c  有的人说是将c变变为了一个unicode 编码 这里 可以理解我想搞清楚的是            Encoding e = Encoding.GetEncoding("gb2312");            byte[] by = e.GetBytes("你");这中间的by[0]=192,by[1]=227 gb2312 高位和低位
如果是Unicode   Encoding e = Encoding.Unicode;            byte[] by = e.GetBytes("你");这里是by[0]=96,by[1]=79我在这里移位也得不到 int a = (int)c;//a=20320 这个20320
我纠结的是 如何通过这个byte[0],byte[1] 转成一个中文你,不要系统封装的,
可以用位运算或者其他的

解决方案 »

  1.   

    我的不要系统封装的 是说不要用Encoding.Unicode.GetString(by)这样的,
    有人木有啊
      

  2.   


    转回去 ,我知道也可以,我只是想知道,这两个byte能不能通过其他的方式转过去,就是不懂原理
      

  3.   

    终于出来了,C# code   Encoding e = Encoding.Unicode;            byte[] by = e.GetBytes("你");
    这里是by[0]=96,by[1]=7920320 =(((int)by[1])<<8)+(int)by[0];
    *256=*2^8=<<8;