1个汉字的字节数真是2吗? | 您所在的位置:网站首页 › 1个汉字等于多少字节数 › 1个汉字的字节数真是2吗? |
问题缘由是最近做了一个简单的试验,无意间发现并不是这样的。先附上代码,如下: public class ChineseBytes { public static void main(String[] args) { String str=new String("你好,世界。"); System.out.print("+"); for (int i = 0; i < str.getBytes().length; i++) { System.out.print("-"); } System.out.println("+"); System.out.println("你好,世界。"); } }结果如下: +------------------+ 你好,世界。仔细一下就不对劲,平时我们都讲一个中文对应2个字节,我无聊数了一下,刚好18个字节,也就是刚好一个中文对应3个字节,难道真的是巧合吗?然后就去查了相关的资料,发现不同的编码方式字节码是不同,由于我的eclipse用的编码方式是UTF-8(因为有段时间打开网上的源码中文注释是乱码的,原是使用GBK的,才改用的UTF-8),刚好是三倍。资料显示,如果是采用GBK的话,会是2个字节,于是我试了一下: +------------+ 你好,世界。结果果然如此。下表总结了不同的编码对应的字节数。 英文字母:
GB2312 1
GBK 1
GB18030 1
ISO-8859-1 1
UTF-8 1
UTF-16 4
UTF-16BE 2
UTF-16LE 2
中文汉字:
GB2312 2
GBK 2
GB18030 2
ISO-8859-1 1
UTF-8 3
UTF-16 4
UTF-16BE 2
UTF-16LE 2
我们可以看到,UTF-16不管中文还是英文,都是对应4个字节。英文多数都是对应1个字节,和平常所说的一个英文对应一个字节很符合,除了UTF-8以后的都是1;西欧编码(ISO-8859-1)的中文居然只有1个字节。 |
CopyRight 2018-2019 实验室设备网 版权所有 |