UnicodeDecodeError: 'utf-8' codec can't decode bytes 和 UnicodeEncodeError: 'ascii' codec can't encode characters 报错

时间:2023-01-04 19:16:30

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

  1. 记清楚编码与解码的方向;

  2. 在 Python 中的操作尽量采用 UTF-8,输入或输出的时候再根据需求确定是否需要编码成二进制:

  3. '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”