日期:2014-05-17  浏览次数:20886 次

请教关于 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
单纯的端序问题