解决 UnicodeDecodeError: 'utf8' codec can't decode byte 0x9c
之前分享的一篇“ 读取配置表,循环输入对应数据”[http://support.i-search.com.cn/article/1554966439384的贴子,在后续运行中出现了这样的报错信息:UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0x9c
初步推测这是文件中包含了 utf8 也无法解码的偏僻字符,导致报此错误。
解决方法
1. 使用 unicode 解码:
with open(file, 'r') as f:
for str in f:
# unicode 是python2里的,我在python3测试会有问题
str = unicode(str, errors = 'replace')
# or
str = unicode(str, errors = 'ignore')
该方法返回一个不包含那些无法解析的字符的字符串。
2. 使用 codecs 读取文件:
import codecs
with codecs.open(file, 'r', encoding='utf-8',
errors='ignore') as f:
for str in f:
# process
关于 utf8 无法解析的字符串的问题,Python 还有官方文档说明,有兴趣的同学可以参考一下。
路过