近日,良哥在调试程序发现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’即可。