java中文字符串为什么只占一个字节

这取决于字符编码方式:
一般情况下,
采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;
采用GB2312或GBK编码方式时,一个中文字符占2个字节;
而采用UTF-8编码方式时,一个中文字符会占3个字节

public void printStrLength(){
String str="你好";
try {
Integer len_ISO8859_1 = str.getBytes("ISO8859-1").length;// 得到2
Integer len_GB2312 = str.getBytes("GB2312").length;//得到4
Integer len_GBK = str.getBytes("GBK").length;//得到4
Integer len_UTF_8 = str.getBytes("UTF-8").length;//得到6
System.out.println("#####################length=" + str.length());
log.error("#####################length=" + str.length());
}catch (UnsupportedEncodingException e){

}
}
posted on 2020-07-29 17:37  woshare  阅读(717)  评论(1编辑  收藏  举报