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] 转成一个中文你,不要系统封装的,
可以用位运算或者其他的
有人木有啊
转回去 ,我知道也可以,我只是想知道,这两个byte能不能通过其他的方式转过去,就是不懂原理
这里是by[0]=96,by[1]=7920320 =(((int)by[1])<<8)+(int)by[0];
*256=*2^8=<<8;