解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0

出现这个bug,可能是处理中文文本,也有可能是Python版本问题。

open(file, 'r', encoding=’utf-8’)

本人解决问题,仅仅添加了encoding=’utf-8’

 

以下内容转载自:

Python编码问题的解决方案总结,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!
https://fishc.com.cn/thread-56452-1-1.html

############################################################################

Python2.x 的版本默认的编码是 ASCII,ASCII 默认只用一个字节来存放数据。由于中国汉字博大精深,一个字节是不足以存放所有的汉字的。

解决方案:

使用 Python3,因为 Python3 默认使用 UTF-8 编码。

 

延伸知识:

Unicode 编码系统的发明是为了统一各国文字的编码,因此把它称为万国码。Unicode 为每种语言设置了唯一的二进制编码表示方式,也就是说无论哪个国家的语言,都可以在 Unicode 上找到对应的代码。因此,当不同的编码系统进行相互转换的时候,可以利用 Unicode 做一个“中介”。

其他编码系统到 Unicode 的转换过程我们称为解码(decode),将 Unicode 转换为其他编码系统的过程称之为编码(encode)。例如 A 编码需要转换为 B 编码,过程如下:

A编码 -> decode(A) -> Unicode -> encode(B) -> B 编码

 

 

也推荐此篇博客:

'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) - 简书
https://www.jianshu.com/p/5017d8342dd2

你可能感兴趣的:(python)