常见编码格式

在这里插入图片描述

1、ascii

计算机是美国人发明的,因此,最早只有128个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码.
ascii只占一个字节,00000000–01111111,一对一关系,二进制代表一个字符
在这里插入图片描述

2、GB2312-80

只需要记住这个是我国发明的,包含了常用汉字和拉丁字母、平假名等,占两个字节,一对一关系,一个二进制码对应一个文字

3、Unicode

各个国家都像我们一样,有自己的编码方式,在自己国家使用没有问题,但是国家与国家之间交流的时候就会出现问题,编码方式不一样,导致乱码,所以出现了Unicode
Unicode目前涵盖了目前人类使用的所有字符,并为每个字符进行统一编号,部分字符对应的编号,可以看到unicode的前128个字符的编号和ascii一样
但是注意Unicode只是规定了字符对应的编码,没有规定如何存储,这是和ascii,GB2312-80等不一样的地方,ascii等不仅是规定了字符对应的编码是多少,还规定了存储,比如ascii只能用一个字节存储,GB2312-80只能用两个字符来存储
unicode为什么不规定如何存储?如果规定了字节数,为了满足所有的字符需求,这个字节数必然很大,但是对于只需要一个字节的字符的来说,造成极大的浪费。

4、utf-8

utf-8是目前最主流的Unicode编码方案之一,按照unicode的编号规则,但是存储上有优化,不是针对所有的字符采用同一个字节数,而是根据不同的字符,采用不同的字节数来存储,目前是用1-4个字节来存储,那机器如何知道这个字符是占一个字节还是4个字节?
第一个字节的第一位为0,表示单字节,和ascii一致
第一个字节的第一位为1,第二位为1,第三位为0,表示是双字节,需要和后面的那个字节一起才能表示这个字符
第一个字节的第一位为1,第二位为1,第三位为1,第四位为0,表示三字节,需要和后面的两个字节一起才能表示这个字符
第一个字节的第一位为1,第二位为1,第三位为1,第四位为1,第五位为0,表示四字节,需要和后面的三个字节一起才能表示这个字符
同时多字符的情况下,后面的所有字符都是以10开头
比如:

110XXXXX 10XXXXXX    //第一个字节是两个1,所以这是两个字节表示的字符,后面的那个字节开头必须是10,这个是固定,记住就是了
11110XXX 10XXXXXX   10XXXXXX  10XXXXXX  //第一个字节是四个1,所以这是四个字节表示的字符,剩下的3个字节都是以10开头的,固定的,记住就是了

所以通过这样子的方式,就能用几个字节就表示很多的字符,而且不造成浪费

5、utf-16

utf-16和utf-8一样都是按照unicode的编号规则,为了减少浪费,有自己的存储规则,但是和utf-8的区别就是存储方式不一样

混淆点:
字符集:字符的集合,比如ascii定义了128个字符,比如GBK(GB2312-80的延伸,都是我国发明的,针对中文的编码方式)定义了5448个字符

字符码:将字符集内的所有字符编号,一个编号对应一个字符,这个编号就是字符码,比如ascii规定‘d’的编号就是100(10进制)

字符编码:具体的实现方式,针对相同的编号,不同的编码方式可能在二进制的表示上是有不同的,比如utf-8和utf-16对于同一个字符,他在计算机的二进制表示上是不一样的

注意区分,在unicode之前,出现一个字符集,他的编码方式也就固定了,比如ascii字符集规定了他的字符集内容,同时也规定了这个字符集内的所有字符的编码方式,一个字符只能用一个二进制表示
但是unicode之后,就不一样了,以为unicode只是提出了一个字符集,这个字符集里面有全球的字符,而且对这些字符进行了编号,但是没有规定他的编码方式,utf-8就是unicode的其中一种编码方式,utf-16也是unicode的编码方式

6、ANSI

默认的意思,比如windows默认的编码方式是GBK,所以这里的ANSI就是GBK
的意思

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值