遇到一个问题,就是在用scrapy抓中文网页的时候,用它的feed exporter来自动保存的时候中文会以unicode的字符保存,(注意不是unicode编码,而是字符,下面会再解释的)这样我想要再读取这个文件的时候,不知道怎么样才能再显示为中文。
这里解释一下具体的问题:
就是保存下来的中文在一个.txt文件中,文件中的内容就是:\u91ce\u6cfd\u96c5\u5b50
这个文件本身的编码就是utf-8的,也就是说这相当于用utf-8的编码形式打开一个文件,然后分别写入了'\','u','9','1','c','e','\'......等字符。
这样我再次读入这个文件的时候,例如:
file = open("new.txt")
a = read(file)
print a
那结果是:
"\\u91ce\\u6cfd\\u96c5\\u5b50"
然而,最终我想要的是u'\u91ce\u6cfd\u96c5\u5b50',请问有没有人知道应该怎么做?
伊谢尔伦2017-04-17 17:09:37
用unicode-escape就行了:
示例:
>>> a = "\u91ce\u6cfd\u96c5\u5b50"
>>> a
'\u91ce\u6cfd\u96c5\u5b50'
>>> b = unicode(a,"unicode-escape")
>>> b
u'\u91ce\u6cfd\u96c5\u5b50'