python设置utf8编码_设置utf-8为默认编码

当使用python编程时,编码问题一直很让人头疼,程序中经常会碰到如下错误提示:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)

这是由于python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报上面的错误。

对于上面问题,一般有2种处理方法:

方法1:

在python代码开头加上如下代码块:

import sys

reload(sys)

sys.setdefaultencoding('utf8')

这种方法是临时的,只在程序执行时生效,系统默认编码并没有改变。

注意:

为了防止重新设置默认编码影响原本依赖ASCII编码的程序,Python编译器在启动时特意清除了sys模块的setdefaultencoding方法。如果需要调用,也可以reload(sys),然后就可以看到sys.setdefaultencoding方法了,不过设置之后就是后果自负了。

经测试,reload后也没有启用setdefaultencoding方法。

方法2:

python安装时默认编码是ascii,通过sys.getdefaultencoding()可以查看默认编码。为了一次性解决问题,我们可以修改python的默认编码。具体操作如下:

第一步:

在python安装目录的Lib\site-packages文件夹下新建一个sitecustomize.py文件

第二步:

在sitecustomize.py填写如下代码

# encoding=utf8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

第三步:重启python,通过sys.getdefaultencoding()查看默认编码,这时结果为'utf8'

暂未测试此方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值