【发布时间】:2021-02-12 03:55:04
【问题描述】:
我正在尝试做最简单的事情,打开一个文件,在 python 中读取并关闭它。简单的。好吧,这是代码:
name_file = open("Forever.txt", encoding='UTF-8')
data = name_file.read()
name_file.close()
print (data)
我知道这些文本中有表情符号,比如心等。问题是,这个表情符号不像 U+2600 这样的 unicode 语法,它们被放置为小图像。我认为以下错误是因为这个小图像:
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f681' in
position 2333: character maps to <undefined>
我尝试了以下方法,但没有指定编码:
name_file = open("Forever.txt")
错误变成了这样:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 2303: character maps to <undefined>
不知道为什么会这样。
也许一种解决方案是将测试的所有内容保存在一个变量中,然后删除其余的...嗯。
【问题讨论】:
-
您的文件实际上不包含图像。您的文件包含文本。您的文本编辑器可能会选择将某些字符显示为图像。请注意这种区别。
-
是的,我想过。感谢您的提示
-
Unicode
\U0001f681不是图像,它是完全有效的字符代码。也许你的 Python 已经过时了。表情符号是最近才添加的,Python 可能会检查你的输入是否有它认为无效的条目。