ASCII

Python解释器在加载.py文件中间的代码,会对内容进行编码(默认ascII)。

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语与西欧语言,最多只能用8位来表示(一个字节),即2^8=256-1,所以ASCII最多只能表示255个字符。

关于中文

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体的中文的big5。

GB2312(1980年)一共收录7445个字符,包括6763个汉字和682个其它符号。汉子区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6769.其中有5个空位是D7FA-D7FE。

GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区,汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正是国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以对手机、mp3一般支持GB2312。

从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总数有相同的编码,后面的支持更多的字符。在这些编码中英文和中文可以统一处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集(DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,通常人是很难用到的,通常我们还是用GBK指代中文Windows内码。

显然ASCII码无法将世界的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码,Unicode是为解决传统的字符编码方案的局限而产生,他为每一种语言的每一个字符设定了同意并且唯一的二进制编码,规定虽有的字符和符号最少由16位来表示(2个字节),即:2**16=65536,

注:此处说的是最少2个字节,可能更多UTF-8,是对Unicode编码的压缩和优化,他不再使用最少2个字节,而是将所有的字符和符号进行分类ASCII码的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。

所以。Python解释器在加载.py文件中的代码时,会对内容进行默认编码。

 
   

猜你喜欢

转载自www.cnblogs.com/hhxz/p/8977089.html