阅读文件时Python编码问题

时间:2016-09-09 16:21:10

标签: python python-2.7

我正在尝试读取包含此字符的文件“ë”。问题是,无论我尝试使用编码,我都无法弄清楚如何阅读它。当我手动查看textedit中的文件时,它被列为未知的8位文件。如果我尝试将其更改为utf-8,utf-16或其他任何内容,它将无效或弄乱整个文件。我尝试使用标准的python命令以及使用编解码器来读取文件,并且无法提供能够正确读取它的任何内容。我将在下面提供一个代码示例。有没有人知道我做错了什么?顺便说一下,这是Python 2.17.10。

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

我试图阅读的内容是其中没有别的内容。

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。

1 个答案:

答案 0 :(得分:1)

这个答案归功于RadLexus,以确定正确的编码方式以及Mad Physicist,即使我没有考虑所有可能的编码,他也指出了我的正确轨道。

问题显然是Mac会将.txt文件转换为mac_roman。如果您使用该编码,它将完美地工作。

这是我用来转换它的代码行。

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