2016-09-09 252 views
1

我試圖讀取包含在它的「e」這個字符的文件。問題是我不知道如何閱讀它,無論我試圖用編碼做什麼。當我手動查看textedit中的文件時,它被列爲未知的8位文件。如果我嘗試將其更改爲utf-8,utf-16或其他任何內容,則無法正常工作或弄亂整個文件。我試着只是在標準的python命令中讀取文件,以及使用編解碼器,而不能拿出任何能夠正確讀取它的東西。我將包含下面的代碼示例。有沒有人有任何線索我做錯了什麼?順便說一句,這是Python 2.17.10。Python的編碼問題讀取文件

readFile = codecs.open("FileName",encoding='utf-8') 

我試圖閱讀的這一行是沒有其他內容的。

Aeëtes 

這裏有一些我得到的錯誤:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x91 in position 0: invalid start byte

UTF-16 stream does not start with BOM" UnicodeError: UTF-16 stream does not start with BOM -- I know this one is that it is not a utf-16 file.

UnicodeDecodeError: 'ascii' codec can't decode byte 0x91 in position 0: ordinal not in range(128)

如果我不使用編解碼器的話就會出現,其中Ae?tes然後在程序崩潰以後。要清楚的是,網絡上沒有任何建議的問題或任何其他地方都指出了答案。另一個可能有用的細節是我使用的是OS X,而不是Windows。

+0

您可以粘貼該文件,或至少它的一部分?你得到的錯誤是什麼? – ffledgling

+1

請提供一些錯誤或意想不到的結果。還有''utf-8-sig''編碼可能有幫助。 –

+0

錯誤根據我使用的編碼而改變。這是其中之一。 UnicodeDecodeError:'utf8'編解碼器無法解碼位置0中的字節0x91:無效起始字節 – Jimmy

回答

1

信用爲這個答案去RadLexus搞清楚正確的編碼,並以瘋狂的物理學家誰指着我,即使我不考慮所有可能的編碼正確的軌道。

的問題顯然是一臺Mac將.txt文件轉換爲mac_roman。如果您使用該編碼,它將完美工作。

這是我用它轉換的代碼行。

readFile = codecs.open("FileName",encoding='mac_roman')