【发布时间】:2015-12-18 03:21:17
【问题描述】:
我有 html 文件来读取解析等,它是在 unicode 上编码的(我用记事本看到的)但是当我尝试时
infile = open("path", "r")
infile.read()
它失败了,我遇到了著名的错误:
UnicodeEncodeError:“charmap”编解码器无法编码位置 xx 中的字符:字符映射到未定义
所以为了测试,我尝试将文件的包含内容复制粘贴到一个新文件中并将其保存在 utf-8 中,然后尝试使用这样的编解码器打开它:
inFile = codecs.open("path", "r", encoding="utf-8")
outputStream = inFile.read()
但我收到此错误消息:
UnicodeEncodeError : 'charmap' 编解码器无法在位置 0 对字符 u'\ufeff' 进行编码:字符映射到未定义
我真的不明白,因为我是用utf8创建这个文件的。
【问题讨论】:
-
那是unicode BOM 好像是utf-16,你能不能试试传
encoding='utf-16' -
@EdChum 我试过了,结果是:> UnicodeError: UTF-16 stream does not start with BOM
-
您能否仅在前几行发布原始输入数据或文件链接,谢谢。另一种选择是跳过前几个字符,但实际上它应该能够毫无问题地打开它
-
这是一个来自 Outlook 的 htm 文件,开头如下:"schemas.microsoft.com/office/2004/12/omml" xmlns="w3.org/TR/REC-html40">"
-
您确定在
.read()! 期间收到了该错误吗?读取期间的错误将是“无法解码”。听起来您在写入文件或打印到终端时遇到错误
标签: python python-3.x unicode utf-8