04.python3 的 UnicodeDecodeError 报错

我在使用 sublime text 在 python3 上运行以下代码的时候的:

# coding: utf-8
import os
f = open('test.txt','r')
print(f.read())

也遇到了以下报错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 9: ordinal not in range(128)

python2 对于一些字符的识别会报错,网上也有了大量的很成熟的解决办法,或者说网上的办法都是针对 python2 的,但是我用的是 python3 啊,为什么还会这样呢?

我已经将系统默认运行的 python 程序设置成 python3 而不是 python2 了
我已经在代码的首行加上了 # coding: utf-8
为什么还会报错呢?

问题出在对文件的读取上,也就是 open 这一步
这个时候,有个很简单的办法:给 open 传递字符的 utf-8 信息,也就是把 open 语句改为下方这样的:

f = open('id_list_test.txt','r',encoding='utf-8')

再运行一次试试看?是不是问题就解决了呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容