Python下UnicodeEncodeError编码错误的解决

引言: 在Python中由于操作系统、系统中的语言、系统中的编码方式的不同,会容易出现各种各样的问题,那改如何解决此类问题呢?

1. 错误信息

UnicodeEncodeError: 'ascii' codec can't encode characters in position 193-194: ordinal not in range(128) 
在运行代码过程中,发生的错误信息,针对信息的分析可知,这个错误变量中信息的编码格式有关,一般都是代码中的编码格式与系统自身的代码格式不一致。

2.  相应解决办法推理

  如果类库或者应用代码带有相应的编码设置,就需要覆盖其缺省设置:

  •    给其API接口中的encoding设置来覆盖其缺省设置
  •    修改系统的默认编码设置,从而达到系统整体的编码设置一致性
3.  解决办法
    执行如下代码, 其将系统默认的编码格式统一为utf-8:
 import sys
 reload(sys)
 sys.setdefaultencoding('utf8')
  重新执行之后,代码运行正常,之前的错误信息消失,证明此方法可行有效

4.  基于API接口的编码设置
    具体需要参照API文档中是否有encoding设置选项, 一般需要从外界读入信息,比如读取文件之类的借口都是可以进行encoding的设置的。
    具体举例如下:
   data = pd.read_excel(discfile, index_col = u'日期',encoding='utf-8')
   代码分析: encoding设置, index_col使用了u来设置其后的字符串位unicode类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值