string s1="cn";
string s2="中国";
system.out.println(s1.getBytes().length)
system.out.println(s2.getBytes().length)
s1显示的是2
s2显示的是4
Java语言内部的char是使用unicode编码,UTF-16,所以都是两字节。
getBytes后,实际上是转换成指定的编码字符集。
不指定时,一般用本地字符集,通常是GBK、ACSII等,在这些字符集中,英文都是单字节的,所以会出现这样的问题。
来源:http://zhidao.baidu.com/question/93896921