繁体   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