首页 > 编程语言 > 详细

Python基础:十三、编码

时间:2019-05-02 13:29:00      阅读:99      评论:0      收藏:0      [点我收藏+]

python2解释器在加载.py?文件中的代码时,会对内容进?行行编码(默认ascill),而python3对内容进?行行编码的默认为utf-8。

 

编码的发展历史

早期,计算机是美国发明的,普及率不高,一般只是在美国使用,最早的编码结果就是按照美国人的习惯来编码的,对应数字+字母+特殊字符一共也没多少,就形成来最早的编码--ASCII码,直到今天,ASCII码依然深深的影响着我们。

ASCII(AmericaStandardCodeforInformationInterchange,美国标准信息交换代码),ASCII码是基于拉丁字母的一套电脑编码,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即:2**8=256 。

最早的计算机编码ASCII码,包含了英文字母(大写、小写)、数字、标点等特殊字符,共128个码位(2**7),但是计算机对7不敏感,所以又加上了一位(2**8),故ASCII码的第一位数字都是0(另一种说法是7位够了,但为了后续拓展,就再加了一位)。所以,ASCII码最多只能表示256个符号(后来发展出来的各自编码都是以ASCII码为基础的)。

 

随着计算机的发展,以及普及率的提高,流行到欧洲和亚洲,这时ASCII码就不合适了。比如,中文汉字有几万个,而ASCII最多也就256个位置,所以ASCII码不行了。这时,不同的国家就提出了用不同的编码来适用于各自的语言环境,如:中国的GBK、GB2312、BIG5、ISO-8859-1等等。这里GBK国标码,前面的ASCII码部分,由于使用两个字节,所以对ASCII码而言,前9位都是0

ASCII码表示的字母A:01000001

GBK国标码表示的字母A:0000000001000001

但是,各国各自使用不同的编码会导致跨国使用的问题,例如,GBK国标码,只能中国用,日本就用不了了。这时,提出了一个万国码---Unicode

unicode一开始设计是每个字符两个字节。设计好了后,发现我国的汉子依然无法进行编码,只能扩充,成为了32位(也就是4个字节)。但是中国汉字虽然有好几万,但是unicode可以表示40多亿,根本用不完,太浪费了,于是提出UTF编码(可变长度编码)。

UTF-8:每个字符最少占8位,每个字符占用的字节数不定,根据文字内容进行具体编码。例如:英文,就一个字节就够了;汉字占3个字节;这时既满足了中文,也满足了节约,也是目前使用频率最高的一种编码。

UFT-16:每个字符最少占16位。

GBK:每个字符占2个字节,16位。

 

单位转换

8bit=1byte

1024byte=1KB

1024KB=1MB

1024MB=1GB

1024GB=1TB

1024TB=1PB

1024PB=1EB

1024EB=1ZB

1024ZB=1YB

1024YB=1NB

1024NB=1DB

常用到TB就够了

Python基础:十三、编码

原文:https://www.cnblogs.com/joetan/p/10802121.html

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