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文件存储格式必须和声明的一致。