问题描述:

  Python2调用xlwt库的报错,报错提示“UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 0: ordinal not in range(128)”编码问题。

 

 

 

原因分析:

  xlwt库中在保存excel文件是会调用UnicodeUtils组件的upack1和upack2函数,传入的encoding参数应该是utf-8,但由于开发者忽略了这个参数 没有正确的传入,导致一直传入默认值ascii,应该是bug。

解决方案:

 在xlwt库python代码UnicodeUtils.py中添加指定encoding参数是utf-8即可。

]# vim /usr/lib/python2.7/site-packages/xlwt-1.3.0-py2.7.egg/xlwt/UnicodeUtils.py
def upack2(s, encoding='ascii'): if encoding == "ascii": #添加代码 encoding = "utf-8" # 添加代码 # If not unicode, make it so. if isinstance(s, unicode_type): def upack1(s, encoding='ascii'): if encoding == "ascii": # 添加代码 encoding = "utf-8" # 添加代码 # Same as upack2(), but with a one-byte length field. if isinstance(s, unicode_type): us = s

 

原文地址:http://www.cnblogs.com/hraa0101/p/16869792.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性