一点沙 发表于 2023-2-26 19:48:31

编码错误


这个代码报错了,内容去百度翻译了一下,是什么 “gbk”编解码器无法解码位置16中的字节0xa3:非法的多字节序列。 但问题是这个报错该怎么解决呀???

isdkz 发表于 2023-2-26 19:50:29

本帖最后由 isdkz 于 2023-2-26 19:51 编辑

换个编码打开文件,使用 open 的时候加上 encoding 参数指定编码:
f = open(r'C:\Users\Jonas\Desktop\装修.txt', encoding='utf-8')
f.read()

liuhongrun2022 发表于 2023-2-26 19:51:45

本帖最后由 liuhongrun2022 于 2023-2-26 19:53 编辑

f = open(r'文件路径', encoding='utf-8')
给个最佳答案吧{:10_254:}
isdkz 太快了

liuhongrun2022 发表于 2023-2-26 19:52:32

isdkz 发表于 2023-2-26 19:50
换个编码打开文件,使用 open 的时候加上 encoding 参数指定编码:

比我快不到1分钟.....厉害

ba21 发表于 2023-2-26 19:57:59

是老问题 了,从根源解决才是正确的。
1.先判断文本文件使用的编码。
2.使用获取到的编码打开文件。
import cchardet as chardet

# 先检测出文件编码
with open("test.txt", "rb") as f:
    msg = f.read()

enc = chardet.detect(msg) # 返回的是个字典 编码和准确度。如:{'encoding': 'UTF-8', 'confidence': 0.9900000095367432}
print(enc)
enc = enc['encoding']

# 然后以指定编码打开文件
with open("test.txt", "r", encoding=enc) as f:
    print(f.read())
页: [1]
查看完整版本: 编码错误