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

一、问题还原

近日,良哥在调试程序发现python3的一个天坑问题。特此曝光,为众位开发朋友提个醒。
程序代码如下:
发现python3的一个天坑问题:报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid_第1张图片
执行后,此处会报错,报错信息如下:
发现python3的一个天坑问题:报错UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position 59: invalid_第2张图片

二、原因分析

原来这就是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,python)