首页 > 其他 > 详细

编码总结

时间:2019-08-20 18:56:18      阅读:81      评论:0      收藏:0      [点我收藏+]

可以参照文章   https://blog.csdn.net/longwen_zhi/article/details/79704687

 

 

  • ASCII编码

 

最开始美国编写的编码,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统

   一个字节  8位二进制  (其中使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。)

 

  •  GBK 编码 

GB2312     后来中国用计算机,但ASCII编码不支持中文。咋办,中国自己搞了一个 GB2312。但只能标识大约7000个汉子

            两个字节     16位二进制(当字符小于127位时,与ASCII的字符相同,但当两个大于127的字符连接在一起时,就代表一个汉字)

GBK    中国汉子多,还有繁体字,7000个不够,咱办,在GB2312上继续扩展,重新定义规则,同时新增了近20000个新的汉字(包括繁体字)和符号。

       两个字节     16位二进制 不在要求低字节一定是127之后的编码,只要第一个字节是大于127,就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容)

GB18030     又叫“DBCS”,又有问题了,中国有56个民族,所以,我们再次对编码规则进行了扩展,又加了近几千个少数民族的字符

  • Unicode编码

 

 因为世界国家很多,每个国家都定义一套自己的编码标准,结果相互之间谁也不懂谁的编码,就无法进行很好的沟通交流,所以及时的出现了一个组织ISO决定定义一套编码方案来解决所有国家的编码问题。

这个新的编码方案就叫做Unicode。

Unicode不是一个新的编码规则,是一套字符集(为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)),可以将Unicode理解为一本世界编码的字典
 ISO规定:每个字符必须使用俩个字节,即用16位二进制来表示所有的字符,对于ASCII编码表里的字符,保持其编码不变,只是将长度扩展到了16位,其他国家的字符全部统一重新编码。

  由于传输ASCII表里的字符时,实际上可以只用一个字节就可以表示,所以,这种编码方案在传输数据比较浪费带宽,存储数据比较浪费硬盘。

  • UTF-8编码

由于Unicode比较浪费网络带宽和硬盘,因此为了解决这个问题,就在Unicode的基础上,定义了一套编码规则(将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)),

这个新的编码规则就是UTF-8,采用1-4个字符进行传输和存储数据。 utf-8中一个汉字是3个字节

 

  • UTF-8和Unicode与GBK的关系

 utf-8--------    decode(解码)----->>Unicode类型<<-------decode(解码)-----    gbk

 utf-8<<--------encode(编码)----->>Unicode类型<<-------encode(编码)----->>gbk

 

编码总结

原文:https://www.cnblogs.com/zdyang/p/encode.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!