文本文件的内容是
u'\u26be\u26be\u26be'
当我运行脚本时......
import codecs
f1 = codecs.open("test1.txt", "r", "utf-8")
text = f1.read()
print text
str1 = u'\u26be\u26be\u26be'
print(str1)
我得到了输出......
u'\u26be\u26be\u26be'
⚾⚾⚾
问题:为什么与文件内容相同的字符串能够正确生成表情符号?
答案 0 :(得分:8)
文件内容u'\u26be\u26be\u26be'
与r"u'\u26be\u26be\u26be'"
类似。换句话说,u
,\
,u
,2
,...的字符
您可以使用ast.literal_eval
将此类字符串转换为字符串⚾⚾⚾
:
import ast
import codecs
with codecs.open("test1.txt", "r", "utf-8") as f1:
text = ast.literal_eval(f1.read())
print text
...
但是,为什么文件包含这样的字符串(u'\u26be\u26be\u26be'
)而不是⚾⚾⚾
?也许您需要考虑重新设计文件保存部分。
答案 1 :(得分:2)
如果输入文件需要具有unicode转义,则需要按如下方式对其进行过滤:
with open("test1.txt", "r") as f1:
text = f1.read()
print unicode(text, 'unicode_escape')
str1 = u'\u26be\u26be\u26be'
print(str1)
无需导入其他库。