Python当前的默认编码设置setdefaultencoding
2010-06-23 11:23
423 查看
更多请去 http://www.jucoder.com
在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,而欲输出的字符为utf-8编码,ascii的每个字符的十进制编码都在0-128以内,当然无法识别utf-8的编码。
要解决这个问题,首先修改终端的字符编码设置:
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
可以看到,当前的默认编码是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')
就可以看到正确显示。
出自 聚程网 http://www.jucoder.com
在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,而欲输出的字符为utf-8编码,ascii的每个字符的十进制编码都在0-128以内,当然无法识别utf-8的编码。
要解决这个问题,首先修改终端的字符编码设置:
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
可以看到,当前的默认编码是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')
就可以看到正确显示。
出自 聚程网 http://www.jucoder.com
相关文章推荐
- 设置eclipse默认编码为UTF-8 Set default encoding to utf-8 in eclipse
- 评论python编码文章《立即停止使用 setdefaultencoding('utf-8'), 以及为什么》
- MyEclipse 设置默认编码为utf-8 Default Encoding
- setdefaultencoding python 编码问题
- 设置python的默认编码为utf8
- 设置python的默认编码为utf8
- Python 设置系统默认编码以及其他编码问题大全
- 设置python的默认编码为utf8
- Python文件读取编码错误问题解决之(PyCharm开发工具默认设置的坑。。。)
- Python 设置系统默认编码
- Python 在 Eclipse报错 Undefined variable from import: setdefaultencoding
- myeclipse中的jsp页面pageEncoding怎样设置默认编码为“UTF-8”
- Python 设置系统默认编码
- 设置python的默认编码为utf8
- 设置python的默认编码为utf8
- Python 设置系统默认编码
- Python 设置系统默认编码(常见问题汇总)
- Python - reload(sys) + sys.setdefaultencoding
- python 默认编码的理解与设置
- Python 设置系统默认编码 分类: python基础学习 2013-12-11 10:04 212人阅读 评论(0) 收藏