汉字的字节计算情况不同


String name="宋";
int a=name.getBytes("gb2312").length;
System.out.println(a);//a=2
a=name.getBytes("utf-8").length;//一个汉字占3个字节
System.out.println(a);//a=3
a=name.getBytes("gbk").length;
System.out.println(a);//a=2
a=name.getBytes("ISO8859-1").length;//一个汉字占一个字节
System.out.println(a);//a=1
a=name.length();//一个汉字占一个长度
System.out.println(a);//a=1
a=name.getBytes("UNICODE").length;//一个汉字占一个字节
System.out.println(a);//a=4
java的默认编码是UNICODE吧,应该是4个字节啊

原文地址:https://www.cnblogs.com/zghull/p/2969007.html