多种字符编码集的说明

编码表的由来

计算机只能识别二进制数据,早期由来是电信号。为了方便应用计算机,让它可以识
别各个国家的文字。就将各个国家的文字用数字来表示,并一一对应,形成一张表。
这就是编码表。

常见的编码表
  • ASCII:美国标准信息交换码
    用一个字节的7位可以表示。
  • ISO8859-1:拉丁码表
    欧洲码表 用一个字节的8位表示。
  • GB2312:中国的 中文编码表
    最多两个字节编码所有字符
  • GBK:中国的中文编码表升级,融合了更多的中文文字符号
    最多两个字节编码
  • Unicode:国际标准码,融合了目前人类使用的所有字符
    为每个字符分配唯一的字符码。所有的文字都用两个字节来表示。
  • UTF-8:变长的 编码方式
    可用1-4个字节来表示一个字符。
衍变

ASCII ------ ISO8859-1 :

随着计算机的不断发展,需要扩充ASSCII编码规则,扩展出了10000000~ 11111111(0X80~0XFF)这128个二进制数。

ASCII ------ GB2312 :

为了解决汉字的问题,中国国家标准总局制定了GB2312,向下兼容ASCII编码方式。后来又有了GBK字符集及相应的编码规范,GBK编码规范也是向下兼容GBK2312的。

在Unicode出现之前,所有的字符集都是和具体编码方案绑定在一起的(即字
符集≈编码方式),都是直接将字符和最终字节流绑定死了。

在这里插入图片描述

Unicode的出现

Unicode字符集涵盖了世界上所有的文字和符号字符,Unicode编码方案为字符集中的每一个字符指定了统一且唯一的二进制编码。

Unicode不完美,这里就有三个问题,一个是,我们已经知道,英文字母只用
一个字节表示就够了,第二个问题是如何才能区别Unicode和ASCII?计算机
怎么知道两个字节表示一个符号,而不是分别表示两个符号呢?第三个,如果
和GBK等双字节编码方式一样,用最高位是1或0表示两个字节和一个字节,
就少了很多值无法用于表示字符,不够表示所有字符。

Unicode只是定义了一个庞大的、全球通用的字符集,并为每个字符规定了唯
一确定的编号,具体存储成什么样的字节流,取决于字符编码方案。推荐的
Unicode编码是UTF-8和UTF-16。

在这里插入图片描述

参考:https://www.zhihu.com/question/57461614/answer/274634720

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值