python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python3报错UnicodeDecodeError

python3的一个天坑问题及解决方法:报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid

作者:行者张良

在调试程序发现python3的一个天坑问题:报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid,特此曝光,为众位开发朋友提个醒

发现python3的一个天坑问题:报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid

一、问题还原

近日,良哥在调试程序发现python3的一个天坑问题。特此曝光,为众位开发朋友提个醒。程序代码如下:

执行后,此处会报错,报错信息如下:

二、原因分析

原来这就是Python 编码中最常见也是最天坑的两个错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte

翻译过来就是python在ASCII和UTF-8编码集中没法实现部分字符的编码,我这个错误就是‘utf-8’不能解码位置59的那个字节(0xce),也就是这个字节超出了utf-8的表示范围了。

三、解决办法

我把代码中的 encoding="utf-8"改为 encoding='gbk’即可。

补充:python 报错“UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte“的解决办法

由于我在程序中设定文件打开的编码格式为“utf-8”,但是我后来用电脑的记事本打开这个”三国演义.txt”文件,然后在点击另存为的时候,发现原文件的编码方式是“ANSI”. 哦哦哦哦哦哦哦哦哦哦哦。。。。不报错才怪呢!

解决办法很简单,只需要在另存为的时候,选择编码方式为:UTF-8即可,就像下面这样

之后Python运行即可正常

到此这篇关于发现python3的一个天坑问题:报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid的文章就介绍到这了,更多相关python3报错UnicodeDecodeError内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文