【发布时间】:2016-09-09 16:21:09
【问题描述】:
我正在尝试读取包含此字符“ë”的文件。问题是,无论我尝试使用编码做什么,我都无法弄清楚如何阅读它。当我在 textedit 中手动查看文件时,它被列为未知的 8 位文件。如果我尝试将其更改为 utf-8、utf-16 或其他任何内容,它要么不起作用,要么会弄乱整个文件。我尝试仅在标准 python 命令以及使用编解码器中读取该文件,但无法提出任何可以正确读取它的内容。我将在下面包含一个代码示例。有谁知道我做错了什么?顺便说一下,这是 Python 2.17.10。
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 流不以 BOM 开头” UnicodeError: UTF-16 stream does not start with BOM -- 我知道这是不是 utf-16 文件。
UnicodeDecodeError:“ascii”编解码器无法解码位置 0 中的字节 0x91:序数不在范围内 (128)
如果我不使用编解码器,则该词以Ae?tes 出现,随后在程序中崩溃。为了清楚起见,建议的问题或网络上的任何其他问题都没有指向答案。另一个可能有帮助的细节是我使用的是 OS X,而不是 Windows。
【问题讨论】:
-
请提供一些错误或意外结果。还有
"utf-8-sig"编码可能会有所帮助。 -
文件写在哪里?是不是在使用一些奇怪编码的环境中,比如 Windows 遗留代码页?在此处查看类似问题:stackoverflow.com/q/6344853/2988730
-
您是否尝试过构建一个可能的编码列表并循环遍历它们直到一个可行?
-
所以我搜索了
0x91代表字符ë的编码。至于你的“还有一件事”说明:想象一下,当Mac Roman Encoding 出现这种情况时,我会感到惊讶。
标签: python python-2.7