我在 Python 3 中有以下代码,用于打印出 csv 文件中的每一行。
import csv
with open('my_file.csv', 'r', newline='') as csvfile:
lines = csv.reader(csvfile, delimiter = ',', quotechar = '|')
for line in lines:
print(' '.join(line))
但是当我运行它时,它给了我这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 7386: invalid start byte
我查看了 csv 文件,结果发现如果我取出一个 ñ(顶部有波浪号的小 n),每一行都可以打印出来。
我的问题是我已经查看了很多类似问题的不同解决方案,但我仍然不知道如何解决这个问题,解码/编码什么等等。简单地取出数据中的 ñ 字符不是一个选项.
原文由 HLH 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们知道该文件包含字节
b'\x96'
因为它在错误消息中被提及:现在我们可以编写一个小脚本来查明是否有任何编码
b'\x96'
解码为ñ
:哪个产量
因此,尝试改变
到其中一种编码,例如: