字符集是一个必须掌握的基础知识。
ASCII码,用一个字节来表示文字或者符号,只含有英文,1个字节,是8位,可以表示256个文字,这就够了。
GBK是中国的码表,兼容ASCII码表,它的ASCII码的部分还是用1个字节来表示,中文是用2个字节来表示,那就是可以表示65536个中文文字。
Unicode码表是万国码,就是全世界所有的文字都可以编码,也兼容ASCII码表。
可以发现,所有字符集可以分成2类,一类是ASCII码表,另一类是其他码表,其他码表都兼容ASCII码表,所以这也是为什么我们编程时一般说乱码都是说中文乱码,都是特指中文乱码,因为英文不会出现乱码。
Unicode码表是给出了全世界所有文字的编码,如果简单一点,我就可以把英文文字设置为1个字节,其他国家文字都设置为3个字节,那这样子也够了,但是出于节省磁盘空间和内存空间的考虑,Unicode做了更细的分类。有UTF-8,UTF-16,UTF-32等具体细分。
粗略地理解,UTF-16和UTF-32可以理解为定长编码,这样就比较浪费空间,比如代码中更多是英文文字,这用1个字节就可以表示了,但是UTF-16却一直用2个字节来表示1个英文文字。
所以有了UTF-8,变长编码,可以用1个字节,2个字节,3个字节来表示不同的文字,于是就能节省很多空间。
字符集编码
最新推荐文章于 2022-10-27 10:13:19 发布