内存大小
不同的编码,在内存中占的内存不同
Java语言中,中文字符所占的字节数取决于字符的编码方式
编码方式 | 内容 | 字节大小 |
---|---|---|
ISO8859-1 | 一个中文字符 | 1字节 |
ISO8859-1 | 一个英文字符 | 1字节 |
GB2312 | 一个中文字符 | 2字节 |
GB2312 | 一个英文字符 | 1字节 |
GBK | 一个中文字符 | 2字节 |
GBK | 一个英文字符 | 1字节 |
UTF-8 | 一个中文字符 | 3字节 |
UTF-8 | 一个英文字符 | 1字节 |
验证方式
我们可以通过String类的getBytes(String charsetName)方法来获取到字符串以指定编码方式编码后所得到的字节数组,然后字节数组的长度就是该字符串在指定编码方式下所占的字节数。下面为一个测试示例:
public static void main(String []args) throws UnsupportedEncodingException {
// 运行结果:2
System.out.println(“测试”.getBytes(“ISO8859-1”)。length);
// 运行结果:4
System.out.println(“测试”.getBytes(“GB2312”)。length);
// 运行结果:4
System.out.println(“测试”.getBytes(“GBK”)。length);
// 运行结果:6
System.out.println(“测试”.getBytes(“UTF-8”)。length);
}
注意:String类的不带参数的getBytes()方法会以程序所运行平台的默认编码方式为准来进行转换,在不同平台下就会有不同的结果,因此建议使用指定编码方式的getBytes(String charsetName)方法。