String.length()和String.getBytes().length的区别
String.length() 是表示字符串所需的UTF-8代码单元的数量。
String.getBytes().length 是在默认编码中表示字符串所需的字节数。
举例说明:
public static void main(String[] args) {
String utf="张";
System.out.println("字符串长度="+utf.length()+",字符串字节"+utf.getBytes(Charset.forName("UTF-8")).length);
System.out.println("字符串长度="+utf.length()+",字符串字节"+utf.getBytes(Charset.forName("GBK")).length);
}
输出结果:
字符串长度=1,字符串字节3
字符串长度=1,字符串字节2
总结:
UTF编码方式中一个汉字三个字节、GBK编码方式中一个汉字两个字节,UTF/GBK其余都是一个字节.