2017-07-29 78 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