您所在的位置:小祥子 » 编程 » Python » 正文

Python 编码解析

时间:2015-04-22 编辑:feesland 来源:本站整理

Python 编码解析

  

  ASCII   Unicode;UTF-8  gbk

    在具体说明 Python 处理编码之前,先来理清 ASCII、Unicode;UTF-8、gbk 究竟是什么?这边仅简单介绍下,具体请百度。

    ASCII:是基于拉丁字母的一套电脑编码系统,是现今最通用的单字节编码系统。ASCII(1~127) 仅可代表英文、数字及一些符号等,如,A 的 ASCII 码为65(十进制)。

    Unicode:为了解决传统的字符编码方案的局限而产生,为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。犹如其本身的英文含义,Unicode是一种所有符号的编码。Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。

    UTF-8:是一种针对Unicode的可变长度字符编码,它是Unicode实现的方式之一,是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间,参考如下:

字符ASCIIUnicodeUTF-8
A 01000001 00000000 01000001 01000001
x 01001110 00101101 11100100 10111000 10101101

    gbk:GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码。

 

  Python 3 支持 Unicode

    从 Python 3.0 开始所有的字符串都支持 Unicode,默认保存为UTF-8格式;故无须特殊处理,即可正常 print 中文

      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" border="0" onload="return imgzoom(this,600);"/>

    但Python 3. 对应 sys 模块无 sys.setdefaultencoding()这个函数,而python 3的代码和包管理上打破了和2.x的兼容,故原2.x的扩展包要适应这种情况来改写。

  Python2 处理 Unicode

    Python2 默认源代码文件是 ASCII 编码,故仅仅使用英文、数字的情况下一切正常,但是若使用了中文等,会报错,如下:

      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" border="0" onload="return imgzoom(this,600);"/>

    为了解决此问题,需要保存为 UTF-8 格式,通常会在 .py 文件头上加上  # -*- coding: utf-8 -*-  ,这样,python就会依照utf-8的编码形式解读其中的字符,加上后运行,如下:

       

    这边,直接 print 中文字符串显示为乱码,这是由于python编码与控制台编码的不一致造成的。Windows下控制台中的编码使用的是gbk,而在代码中使用的utf-8,python按照utf-8编码打印到gbk编码的控制台下自然就会不一致而不能打印出正确的汉字。

    对此,Python2用来存储文本数据的类型为Unicode 对象,它可以用于存储和维护 Unicode 数据,与现有的字符串对象有良好的集成,必要时提供自动转换。在 Python 中创建 Unicode 字符串和创建普通的字符串一样简单,只需在字符串引号前加 u 即可,如上例中的  u"中文" 。这样处理之后,print 出的中文就不会乱码了。

    在Python 3.x版本中,把'xxx'和u'xxx'统一成Unicode编码,即写不写前缀u都是一样的

  sys.setdefaultencoding()

    Python2,可通过 sys.setdefaultencoding('utf8') 来设置默认encoding方式,注意,一定要增加 reload(sys),原因参考下方引用。

 #!/usr/bin/env python    
 #encoding: utf-8  
 import sys       #引用sys模块进来,并不是进行sys的第一次加载  
 reload(sys)      #重新加载sys  
 sys.setdefaultencoding('utf8')  #调用setdefaultencoding函数

那么为什么要重新加载,而直接引用过来则不能调用该函数呢?因为setdefaultencoding函数在被系统调用后被删除了,所以通过 import引用进来时其实已经没有了,所以必须reload一次sys模块,这样setdefaultencoding才会为可用,才能在代码里修改解 释器当前的字符编码。

在python安装目录的Lib文件夹下,有一个叫site.py的文件,在里面可以找到main() --> setencoding()-->sys.setdefaultencoding(encoding),因为这个site.py每次启动 python解释器时会自动加载,所以main函数每次都会被执行,setdefaultencoding函数一出来就已经被删除了。

    

关键词:编码