2017-07-29 54 views
0

我试图使用python编码从UCS-2小端文件UTF8和我得到一个奇怪的错误。编码“UCS-2小端”文件“utf-8”使用python错误

我正在使用的代码:

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 

我试图使用的编解码器的命令,也没有工作... 任何想法我可以做什么?

回答

1

如果你想读取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

1

联的encoding参数open设置输入编码。使用encoding='utf_16_le'

+0

完美的作品,谢谢! – Rob