解决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

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 7: ordinal not in range(128) 这个错误通常是在处理文本时遇到编码问题导致的。ASCII是一种基本的字符编码标准,只支持128个字符,而0xe9对应的字符不在ASCII范围内,因此无法使用'ascii'编解码器进行解码。要解决这个问题,可以尝试以下几种方法: 1. 使用正确的编码方式:检查你的代码中是否使用了正确的编码方式来处理文本。如果你知道文件的编码方式,可以使用相应的编解码器(如'utf-8'、'gbk'等)进行解码。 2. 明确指定编码方式:如果你的代码没有指定编码方式,可以尝试明确指定编码方式来处理文本。可以使用字符串的decode方法来指定编码方式,例如:text.decode('utf-8')。 3. 处理非法字符:如果文本中包含非法字符,可以尝试使用错误处理机制来处理这些字符。可以使用'ignore'参数来忽略非法字符,例如:text.decode('utf-8', 'ignore')。 4. 检查文件编码:如果是在处理文件时出现了该错误,可以检查文件的编码方式是否与你所使用的编解码器相匹配。可以尝试使用其他编码方式来打开文件,或者使用文本编辑器将文件另存为正确的编码方式。 总之,UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 7: ordinal not in range(128) 错误通常是由于编码问题导致的。你可以尝试使用正确的编码方式、明确指定编码方式、处理非法字符或检查文件编码来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 2: invalid continuation byte-...](https://download.csdn.net/download/weixin_42204453/15589184)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [出现UnicodeDecodeError: ‘asciicodec can‘t decode byte 0xe9 in position 0: ordinal not in range...](https://blog.csdn.net/weixin_47872288/article/details/125393194)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [UnicodeDecodeError: ‘asciicodec can‘t decode byte 0xe9 in position 7: ordinal not in range(128)](https://blog.csdn.net/weixin_43793181/article/details/124457700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值