使用 python 错误将"UCS-2 Little Endian"文件编码为"utf8"



我正在尝试使用 python 从UCS-2 Little Endian文件编码到utf8,但遇到了一个奇怪的错误。

我正在使用的代码:

file=open("C:/AAS01.txt", 'r', encoding='utf8')
lines = file.readlines()
file.close()

我收到以下错误:

Traceback (most recent call last):
File "C:/Users/PycharmProjects/test.py", line 18, in <module>
main()
File "C:/Users/PycharmProjects/test.py", line 7, in main
lines = file.readlines()
File "C:Python34libcodecs.py", line 319, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

我尝试使用编解码器命令,但也没有工作... 知道我能做什么吗?

openencoding参数设置输入编码。使用encoding='utf_16_le'

如果你试图阅读UCS-2,你为什么要告诉Python它是UTF-8?0xff很可能是小字节序字节序标记的第一个字节:

>>> codecs.BOM_UTF16_LE
b'xffxfe'

UCS-2也被弃用,原因很简单,Unicode已经超过了它。典型的替换是 UTF-16。

Python 3 中链接的更多信息:读取 UCS-2 (BE( 文件

最新更新