簡體   English   中英

讀取文件時的Python編碼問題

[英]Python encoding issue while reading a file

我正在嘗試讀取一個包含此字符“ë”的文件。 問題是,無論我嘗試使用編碼做什么,我都無法弄清楚如何閱讀它。 當我在 textedit 中手動查看文件時,它被列為未知的 8 位文件。 如果我嘗試將其更改為 utf-8、utf-16 或其他任何內容,它要么不起作用,要么弄亂整個文件。 我嘗試僅在標准 python 命令中讀取文件以及使用編解碼器,但無法想出任何可以正確讀取它的內容。 我將在下面包含閱讀的代碼示例。 有誰知道我做錯了什么? 順便說一下,這是 Python 2.17.10。

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

我正在嘗試閱讀的行是 this ,其中沒有其他內容。

Aeëtes

以下是我得到的一些錯誤:

UnicodeDecodeError: 'utf8' 編解碼器無法解碼位置 0 中的字節 0x91:起始字節無效

UTF-16 流不以 BOM 開頭” UnicodeError: UTF-16 流不以 BOM 開頭——我知道這是它不是 utf-16 文件。

UnicodeDecodeError: 'ascii' 編解碼器無法解碼位置 0 中的字節 0x91:序號不在范圍內 (128)

如果我不使用編解碼器,這個詞會以Ae?tes ,然后在程序中稍后崩潰。 需要明確的是,建議的問題或網絡上的任何其他地方都沒有指出答案。 另一個可能有幫助的細節是我使用的是 OS X,而不是 Windows。

這個答案歸功於 RadLexus 找出了正確的編碼,也歸功於 Mad Physicist,即使我沒有考慮所有可能的編碼,他也為我指出了正確的方向。

問題顯然是 Mac 會將 .txt 文件轉換為 mac_roman。 如果您使用該編碼,它將完美運行。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM