Python下UnicodeEncodeError编码错误的解决

来源:互联网 发布:网络预算表 编辑:程序博客网 时间:2024/05/29 19:35

引言: 在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类型

0 0