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 }