关于'ascii' codec can't encode character u'\uff08' in position 9: ordinal not in range(128)

'ascii' codec can't encode character u'\uff08' in position 9: ordinal not in range(128)

中文示意:ASCII编解码器无法编码字符

解决方案一:

python默认环境编码通过下面的方法可以获取:

import sys

print(sys.getdefaultencoding())

# 输出为:
 ascii

# 基本上是ascii编码方式,由此Python自然调用ascii编码解码程序去处理字符流
# ,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))。

解决的方案很简单,修改默认的编码模式

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

解决方案二:在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

#  encoding=utf8  

import sys  

reload(sys)  

sys.setdefaultencoding('utf8')   

此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

总结:一旦遇到编码的问题,如果不是数据本身的问题,或者操作数据库字段定义的问题上,那就要转向环境的配置的默认编码上!刚开始出了这个BUG,有点不知所措,现在了解了原因的时候,一切都那么简单!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值