Python输出错误的处理
时间:2007-05-04 来源:thinkc
在Python开发过程中,常常会遇到这样的问题,很让人头疼:
......
print s
......
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
可以看到,当前的默认编码是ascii,要修改这个设置,可以在Python安装目录下的Lib/site-packages目录中,新建一个sitecustomize.py文件(也可以建在其它地方,然后手工导入,建在这里,每次启动Python的时候设置将自动生效),内容如下:
import sys
sys.setdefaultencoding('utf-8') #set default encoding to utf-8
然后可以查看到改变已经生效:
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
此时运行程序,如果仍然报告之前的错误,只需要显式地设定输出的编码:
print s.encode('utf-8')
就可以看到正确的显示了.
......
print s
......
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
可以看到,当前的默认编码是ascii,要修改这个设置,可以在Python安装目录下的Lib/site-packages目录中,新建一个sitecustomize.py文件(也可以建在其它地方,然后手工导入,建在这里,每次启动Python的时候设置将自动生效),内容如下:
import sys
sys.setdefaultencoding('utf-8') #set default encoding to utf-8
然后可以查看到改变已经生效:
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
此时运行程序,如果仍然报告之前的错误,只需要显式地设定输出的编码:
print s.encode('utf-8')
就可以看到正确的显示了.
相关阅读 更多 +