gpt4 book ai didi

python - 统一码错误 : UTF-16 stream does not start with BOM

转载 作者:太空狗 更新时间:2023-10-30 00:47:31 33 4
gpt4 key购买 nike

我无法通过 python 读取 csv 文件。我的 csv 文件有韩语和数字。

下面是我的python代码。

import csv
import codecs
csvreader = csv.reader(codecs.open('1.csv', 'rU', 'utf-16'))
for row in csvreader:
print(row)

首先,当我在上面的代码中输入“for row in csvreader”行时出现 UnicodeDecodeError。

所以我使用了下面的代码,然后问题似乎就解决了

csvreader = csv.reader(codecs.open('1.csv', 'rU', 'utf-16'))

然后我遇到了 NULL 字节错误。然后我想不通csv文件有什么问题。

[更新] 我不认为我对之前的代码做了任何更改,但我的程序显示“UnicodeError:UTF-16 流不以 BOM 开头”

当我用 excel 打开 csv 时,我可以看到格式正确的表格(图像附在底部) 但是当我在 sublime Text 中打开它时,下面是我得到的片段。

504b 0304 1400 0600 0800 0000 2100 6322
f979 7701 0000 d405 0000 1300 0802 5b43
6f6e 7465 6e74 5f54 7970 6573 5d2e 786d
6c20 a204 0228 a000 0200 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

如果您需要有关我的文件的更多信息,请告诉我!

感谢您的帮助。提前致谢:)

在 excel 中显示的 csv 文件

enter image description here

csv 文件以 sublime text 显示 enter image description here

最佳答案

问题是您的输入文件显然不是以 BOM 开头(一种特殊字符,对于 little-endian 和 big-endian utf-16 编码不同),所以您不能只使用“utf -16”作为编码,您必须明确使用“utf-16-le”或“utf-16-be”。

如果您不这样做,codecs 会猜测,如果猜错了,它会尝试向后读取每个代码点并获取非法值。

如果您发布的示例以偶数偏移量开始并包含一堆 ASCII,则它是小结尾的,因此请使用 -le 版本。 (但当然,最好是看看它到底是什么而不是猜测。)

关于python - 统一码错误 : UTF-16 stream does not start with BOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49371931/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com