首页 > 解决方案 > 中文/英文 UTF-8 文件上的 UnicodeDecodeError

问题描述

当我尝试读取包含被认为编码为 UTF-8 的英文和中文字符混合的文件时,我不断收到类似的 UnicodeDecodeErrors。

“utf-8”编解码器无法解码位置 88875 中的 0xed 字节:无效的继续字节

有人告诉我它们是 UTF-8,当我在 Notepad++ 中打开文件时,它说它们是 UTF-8。但是当我尝试在 Python 中将文件作为 pandas 数据框读取时,我得到了错误。我正在做的唯一奇怪的事情是使用字节对象,因为我正在使用 SharePoint 中的 SharePlum 移动文件。

bytes_case = folder.get_file('filename.csv')
case=pd.read_csv(io.BytesIO(bytes_case), encoding="utf-8")

输出print(bytes_case[88875-100:88875+100])

b'\xb7\xe7\xa0\x81\xe8\xae\xbe\xe7\xbd\xae\xe4\xba\x86\xe6\x8b\xa6\xe6\x88\xaa\xef\xbc\x8c\xe8\xaf \xb7\xe5\x85\x88\xe5\x8f\x96\xe6\xb6\x88\xef\xbc\x8c\xe4\xbb\xa5\xe4\xbe\xbf\xe4\xb8\x93\xe5\x91\x98 \xe8\x83\xbd\xe9\xa1\xba\xe5\x88\xa9\xe4\xb8\x8e\xe6\x82\xa8\xe8\x81\x94\xe7\xb3\xbb\xe8\xb7\x9f\xe8 \xbf\x9b\xe5\x93\x92\xe3\x80\x82\r\n03-10 15:12:34\r\n\xed\xa0\xbd\xed\xb1\x8c\r\n03-10 15 :12:49\xe6\x88\x91\r\n\xe8\xaf\xb7\xe9\x97\xae\xe8\xbf\x98\xe6\x9c\x89\xe5\x85\xb6\xe4\xbb\x96 \xe5\x8f\xaf\xe4\xbb\xa5\xe5\xb8\xae\xe6\x82\xa8\xe5\x90\x97\xef\xbc\x9f\r\n03-10 15:13:27\r\ n\xe6\xb2\xa1\xe4\xba\x86\r\n03-10 15:13'

标签: python

解决方案


我通过解码为 UTF-8 并忽略错误并将其重新编码为 UTF-8 来“修复”它。

bytes_case = bytes_case.decode('utf-8', errors="ignore").encode('utf-8')

不理想。


推荐阅读