`
xiaobian
  • 浏览: 580021 次
  • 来自: 北京
社区版块
存档分类
最新评论

Python当前的默认编码设置setdefaultencoding

阅读更多
http://hi.baidu.com/dushm/blog/item/95597acb5373431dbe09e6af.html

在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')
就可以看到正确显示。
分享到:
评论

相关推荐

    python3 中文乱码与默认编码格式设定方法

    python默认编码格式是utf-8。在python2.7中,可以通过sys.setdefaultencoding(‘gbk’)设定默认编码格式,而在python3.3中sys.setdefaultencoding()这个函数已经没有了。在python3.3中该如何设置内置的默认编码格式...

    Python设置默认编码为utf8的方法

    本文实例讲述了Python设置默认编码为utf8的方法。分享给大家供大家参考,具体如下: 这是Python的编码问题,设置python的默认编码为utf8 python安装目录:/etc/python2.x/sitecustomize.py import sys reload(sys) ...

    Python获取系统默认字符编码的方法

    下面给出用Python获取系统默认编码的例子: #!/usr/bin/env python #coding=utf-8 """ 获取系统默认编码 """ import sys print sys.getdefaultencoding() 该段程序在英文WindowsXP上输出为: ascii 希望本文所述对...

    python2.7的编码问题与解决方法

    默认的编码格式是ascii,我们可以直接修改为utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') 二、在输入输出的时候,修改编码格式 # 解码为GBK,再次编码为UTF-8 html_doc = unicode(html_doc,'GBK...

    解决reload(sys)后print失效的问题

    #查看python默认编码格式 &gt;&gt;&gt; import sys &gt;&gt;&gt; print sys.getdefaultencoding() #python 2.x 默认编码是ascii格式; python 3.x 默认编码是utf-8格式 ascii #设置python默认的编码格式 &gt;&gt;&gt; import sys &gt;&gt;&gt; print sys....

    python中sys模块是做什么用的

    python中的sys是提供了一系列有关python运行环境的变量和函数的模块,如sys.argv函数实现从程序外部向程序传递参数;sys.platform函数用于获取当前... sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时

    解决Python2.7读写文件中的中文乱码问题

    Python2.7对于中文编码的问题处理的并不好,这几天在爬数据的时候经常会遇到中文的编码问题。但是本人对编码原理不了解,也没时间深究其中的原理。...sys.setdefaultencoding('utf8') # 设置默认编码格式为

    jupyter 中文乱码设置编码格式 避免控制台输出的解决

    我就废话不多说了,大家还是直接看代码吧!...1、在不加任何的编码说明的时候,默认是ascii码,所以在页面上有中文的时候会显示错误,并且源文件无法被解释。”Non-ASCII character ‘\xe7’ in file E:/pythonP

    Python sys模块常用方法解析

    这篇文章主要介绍了Python sys模块常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习... sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行

    RobotFramework之python脚本调用.pdf

    utf-8 -- 因为python默认编码是ascii,所以如果代码中有(),或中⽂等等符号,会报错,提⽰编码不正确 2、如果写的代码⾥边有中⽂,尽量在⽂件开头加上以下3⾏代码 import sys reload(sys) sys.setdefaultencoding(...

    python sys,os,time模块的使用(包括时间格式的各种转换)

    sys模块 sys.argv: 实现从程序外部向程序传递参数。 位置参数argv[0]代表py文件本身,运行方法 python xx.py 参数1,参数2...sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释

    cnnvd爬虫,仅供学习参考。

    #print (u'系统默认编码为',sys.getdefaultencoding()) default_encoding = 'utf-8' #重新设置编码方式为uft-8 if sys.getdefaultencoding() != default_encoding: reload(sys) sys.setdefaultencoding(default_...

Global site tag (gtag.js) - Google Analytics