当前位置: 代码迷 >> J2SE >> java 字符小问解决思路
  详细解决方案

java 字符小问解决思路

热度:67   发布时间:2016-04-24 12:23:13.0
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   }
  相关解决方案