UnicodeDecodeError: 'utf-8' codec can't decode bytes 和 UnicodeEncodeError: 'ascii' codec can't encode characters 报错
0x07 和 0x08 分别介绍了 Python 中的字符串类型(str
)和字节类型(byte
),以及 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 中的操作尽量采用 UTF-8,输入或输出的时候再根据需求确定是否需要编码成二进制:
- 'r':默认值,表示从文件读取数据。'b':表示要读写二进制数据
解决办法:
df_w = pd.read_table( r'C:\Users\lab\Desktop\web_list_n.txt', encoding='ISO-8859-1', sep=',', header=None)
也就是在读取数据的时候,显式添加编码方式encoding='ISO-8859-1',也可以是其它编码,“gb2312”