python 读取文件时报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf

文章目录


UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 63: illegal multibyte sequence

或者

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 20: invalid start byte

一般是在读取文件时,解码汉字或特殊符号出现了问题(Decode)。

这是因为open的默认编码方式是没有指定的,所以运行时编译器用gbk去解析utf-8编码,或者编译器选用utf-8去解析gbk编码
在这里插入图片描述

所以只要你指定编码方式就行了:

  1. 先确定文件的编码方式,比如文件是用UTF-8编码的。
    PS:utf-8和gbk都能编码汉字,所以汉字不一定就是gbk啊,用不同编码解析就会出现这个问题,要看看文件到底是啥编码方式。
  2. 指定encoding的值,如fp = open('file.txt', 'r', encoding='utf-8')

关于如何指定默认的python文件的编码方式,就不用特意指定:
在开头打上:(都一样)

# -*- coding: utf-8 -*-
# coding=utf-8
# coding: utf-8

查看是什么编码方式

import sys
print(sys.getdefaultencoding())

你可能感兴趣的:(python)