字符集编码

字符集是一个必须掌握的基础知识。
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个字节来表示不同的文字,于是就能节省很多空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值