代码如下:
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));