String类型占用字节大小问题
1.String s = “China”; 占多少字节?
System.out.println(Charset.defaultCharset());//获取ide默认编码类型
String s = new String(“China”.getBytes());
byte[] b = s.getBytes();
System.out.println("" + b.length);
以上代码,可以输出 “China” 所占的字节长度为 5
2.String s = “中国”; 占多少字节?
System.out.println(Charset.defaultCharset());//获取ide默认编码类型
String s = new String(“中国”.getBytes());
byte[] b = s.getBytes();
System.out.println("" + b.length);
UTF-8 编码时,每一个汉字占用 3 个字节,那么中国占用 6 个字节。
3.UTF-8 转 GBK 编码格式
System.out.println(Charset.defaultCharset());
String s;
try {
s = new String(“中国”.getBytes(),“GBK”);
byte[] b = s.getBytes();
System.out.println(s );
System.out.println(b.length);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
如上代码是:UTF-8 转 GBK 编码格式,s 长度从 6 字节变为 9 字节。
s 内容变化:中国 —> 涓浗