UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 0 中的字节 0xff:读取 csv 文件时 python 中的无效起始字节错误

Ehs*_*ari 2 python byte-order-mark

StopWords = pd.read_csv('stopwords.csv',encoding='UTF-8', quotechar='|',names=['StopWords'])
Run Code Online (Sandbox Code Playgroud)

我正在尝试读取包含波斯语文本的 CSV 文件,这是我得到的错误:

UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 0 中的字节 0xff:起始字节无效

Dra*_*hts 5

如果没有看到文件的二进制内容,很难猜测实际的编码,但是 UTF-8,无论是否带有 BOM(字节顺序标记)都不能以 0xFF 开头。

如果它以 0xFF 开头,则表明它可能在 Little Endian UTF-16 到 UTF-32 中,这是唯一具有以 0xFF 开头的字节顺序标记的 Unicode 序列化。

https://en.wikipedia.org/wiki/Byte_order_mark给出了一些解释。

它也可能是波斯特定的字符集。如果 Unicode 选项可用,则应避免使用国家字符集来生成源 CSV 文件。

  • 谢谢。在我的例子中,正确的编码是 UTF-16,基于您粘贴的 BOM 维基百科文章。 (2认同)