python2.x版本中文导致编译失败

使用python写代码时,代码中常常需要一些中文,比如输出一些提示信息可能需要是中文的,比较醒目。但是python2.x版本默认编码格式是ascii,检测到非ascii字符时就会报错(UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x?? in position 1: ordinal not in range(128)),这时我们就需要修改python的默认编码格式为utf8,这样就能很好的兼容中文了。

第一种修改python默认编码格式的方法:

def set_default_encoding_utf8():
  reload(sys)
  sys.setdefaultencoding('utf-8')

if __name__ == '__main__':
  set_default_encoding_utf8()

第二种修改python默认编码格式的方法是在python安装目录下Lib\site-packages文件夹新建一个sitecustomize.py文件,python编译器启动时会自动调用sitecustomize.py文件从而修改默认编码格式。这是一种一劳永逸的方法,以后不需要在每个python文件中加入第一种方法了,sitecustomize.py代码内容如下:

# encoding=utf8
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')

还有一点需要特别注意的是,当你的代码里面有中文注释时,需要在python文件头部注明编码格式:# encoding=utf8,而且python文件存储格式必须和声明的一致。


本文为@艺文笔记原创文章,转载请注明出处:https://www.xuwenyan.com/archives/287,非常感谢!
上一篇:  下一篇: