读书人

java 字符小问解决思路

发布时间: 2011-12-29 22:09:38 作者: rapoo

java 字符小问
String str="a";
System.out.println(str.getBytes().length);
String底层是字符数组,字符用unicode编码,unicode用两个字节代表一个字符,为什么这个结果是1?不是2
String str="中";
System.out.println(str.getBytes().length); 这个输出就是2

或者说string的编码不是unicode?

[解决办法]

Java code
public static void main(String args[]) throws Exception{       String str="a";       System.out.println(str.getBytes().length); //1       System.out.println(str.getBytes("GB2312").length); //1       System.out.println(str.getBytes("utf-8").length); //1       System.out.println(str.getBytes("UTF-16BE").length); //2       System.out.println(str.getBytes("UTF-16LE").length); //2       System.out.println(str.getBytes("UTF-16").length); //4   } 

读书人网 >J2SE开发

热点推荐