品易云推流 关闭
文章详情页
文章 > Python基础教程 > 一文带你了解编码集

一文带你了解编码集

头像

爱喝马黛茶的安东尼

2019-07-06 11:35:192530浏览 · 0收藏 · 0评论

编码集

1. ASCII编码:

127个字母 8个数据位足够存储字母、数字、符号,支持到0x7F。

1562383604239602.jpg

2. GB2312编码  

每个汉字占据2个字节(高位和低位),16个数据。GB2312是对ASCII的中文扩展,共包含7000多个汉字。是计算机发展到中国后发展起来的编码,检测高位和低位,如果同时大于0x7F,则认为是GB2312,否则认为是ASCII编码。

相关推荐:《Python视频教程

3. GBK(1995)和GB18030(2005/2000)

每个汉字占据2个字节,由于汉字的数量太大,GB2312不能满足需求。GBK包括了GB2312的所有内容,

同时增加了近20000个新的汉字(包括繁体)和符号 。只要求高位大于0x7F,低位可以小于0x7F,认为是中文。 

>  国家标准GB18030-2000《信息交换用汉字编码字符集基本集的补充》是我国继GB2312-1980和

GB13000-1993之后最重要的汉字编码标准,包含多种我国少数民族文字,其中收入汉字70000余个。

4.Unicode编码 

> 定长存储, 将所有语言都统一到一套编码集,通常使用2个字节,有的是4个字节。收录很全。

分为17个面,基本面采用2个字节,普通中文子也在基本面中,另外16个面是4个字节。

不兼容ASCII码,即存储的时候,对ASCII码前面补0,导致存储的数据变大。

5. utf-8---变长存储

> 国际标准组织(ISO)制定英文字符使用1个字节,沿用原来的ASCII码。

> 使用1~4个字节表示一个符号,中文存储使用3个字节(ascii码中的内容用1个字节保存\欧洲的字符用2个字节保存\东亚的字符用3个字节保存\特殊符号用4个字节)

> Unicode是内存编码表示方案(规范),而utf-8是如何保存和传输Unicode的方案(实现)

> 优点:虽然内存汇总的数据都是Unicode,但当数据保存到磁盘或者用于网络传输时,使用utf-8会节省更多的流量和硬盘空间。

如何判断几个字节表示一个字符:

每个字节添加识别位,其中高位识别位为4位,低位识别位为2位。判断高位字节开头有几个1,可以确定共有几个字节来表示一个字符。

6. utf-8和Unicode对应关系

utf-8去掉识别位,变成unicode。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图