MyException - 我的异常网
当前位置:我的异常网» J2SE » java 字符小问解决思路

java 字符小问解决思路

www.MyException.Cn  网友分享于:2013-12-30  浏览:4次
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
   }

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有