浅析字符集和字符编码

浅析字符集和字符编码

字符集

即编码字符集(coded character set),可以理解为一个包含了该字符集里每一个元素的key-value表,key是字符,value是该字符对应的二进制序号,学名是代码(又称代码点)。

  • ASCII:英文字母、数字

  • ISO 8859:向下兼容ASCII(其前128位即ASCII字符集,编号保持不变),针对不同语言有不同版本

    不同ISO版本具体参考这篇☞链接

  • GB:汉字的字符集,主要有GB2312, GBK,GB1300, GB10830等

  • Unicode:向下兼容 ISO-8859-1,涵盖世界上所有字符,可跨平台

字符编码

使用字符需要把字符的序号存储进内存,而字符编码就是如何将文字编号存储到内存中的规则,即字符集中字符到计算机内实际存储值的映射。

像ASCII码,直接把自己的序号存进内存,因为ASCII只含128个字符,7bits即满足需求(为方便操作用8bits)。

但其他字符集中字符量就大得多,如Unicode,有上百万字符量,为了标识靠后的字符,需要三个字节(223=8,388,608),因此,如何存储将字符集存储进内存,使得效率更高,占用内存更小,成了字符编码需要考虑的问题。

字符编码举例

  • ASCII:ASCII直接将字符在编码字符集中的序号作为字符在计算机中存储从数值。
  • UTF-16:变长的编码方式以16位长位一码元,以1个或者2个码元来表示。
  • UTF-8:变长的编码方式,1~4个字节表示一个符号。
  • UTF-32:定产的编码方式,32位,4字节。

具体编码实现思想可以看这篇☞[链接

参考:https://blog.csdn.net/guxiaonuan/article/details/78678043?spm=1001.2014.3001.5506

https://blog.csdn.net/nlznlz/article/details/80950596?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值