请教关于 int char unicode byte 之间的转换
C# code
char c = '你';
int a = (int)c;//a=20320
c = (char)a;//c='你'
a = (int)c;
这里 a = (int)c 有的人说是将c变变为了一个unicode 编码 这里 可以理解
我想搞清楚的是
C# code
Encoding e = Encoding.GetEncoding("gb2312");
byte[] by = e.GetBytes("你");
这中间的by[0]=192,by[1]=227 gb2312 高位和低位
如果是Unicode
C# code
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] 转成一个中文你,不要系统封装的,
可以用位运算或者其他的
------解决方案--------------------
你按照对应的编码转回去就是了,不清楚你要干嘛
------解决方案--------------------
20320 = 79 * 256 + 96
单纯的端序问题