当前位置: 代码迷 >> J2SE >> 关于字符的内存数据有关问题
  详细解决方案

关于字符的内存数据有关问题

热度:65   发布时间:2016-04-23 19:37:09.0
关于字符的内存数据问题
代码如下:

byte[] by = "中".getBytes();
for(byte b : by){
    System.out.println(b);

System.out.println('中' & 0xFF);
System.out.println('中' >>> 8);

两种不同的方式输出“中”字的高8位和低8位,显示的结果不同,为什么?
------解决思路----------------------
注明chrset 的名字 by = "中".getBytes("utf-16");
------解决思路----------------------
所以不一样

        byte[] by=null ;
by = "中".getBytes();//"中"是个字符串,默认采用的是你当前项目的编码,一般是GBK编码模式
for(byte b : by){
    System.out.print(Integer.toBinaryString(b&0xff) + " ");//打印出中的默认二进制编码
}
System.out.println();
System.out.println(Integer.toBinaryString('中'));//'中'是个字符,是个char 在java中采用的是utf-16编码模式
System.out.println(Integer.toBinaryString('中' & 0xFF));
System.out.println(Integer.toBinaryString('中' >>> 8));
  相关解决方案