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())
  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值