同福

'gbk' codec can't decode byte 0xb0 in position 481: illegal multibyte sequence

介绍

介绍

福哥在使用Python读文件内容的时候系统报出如下错误:

'gbk' codec can't decode byte 0xb0 in position 481: illegal multibyte sequence

原因

看报错的信息很明显是使用GBK码解析文件数据失败,可是福哥的文件明明是UTF-8编码的啊?而且福哥的Python程序也是UTF-8编码的啊?

解决

没有办法,既然文件编码格式和Python程序编码格式都不能影响读取文件的编码格式,只能显式地指明了。

def loadFile(filePath):
    with open(filePath, encoding="utf-8") as fo:
        lines = fo.readlines()
        data = json.loads("".join(lines))
        fo.close()

    return data

要指定open函数的编码需要通过encoding参数,可以把这个参数放到配置文件里面去。