编码' UCS-2 Little Endian'提交给' utf8'使用python错误

时间:2017-07-29 20:36:01

标签: python file utf-8 decode

我尝试使用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:\Python34\lib\codecs.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

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

2 个答案:

答案 0 :(得分:4)

encoding的{​​{1}}参数设置输入编码。使用open

答案 1 :(得分:2)

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

>>> codecs.BOM_UTF16_LE
b'\xff\xfe'

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

Python 3: reading UCS-2 (BE) file

中关联的更多信息