今天写个爬虫, 获取到的中间数据包含类似的unicode的编码,当时一下是觉得挺简单的,后来认真一看,情况有点不一样,正常的unicode如下

>> s = u'中文'
>>> s
u'\u4e2d\u6587'

而获取到的数据,只是引号内的内容,那么问题来了,如何把数据转换为原来的样子?

首先我们知道unicode字符串的格式是u'\xxx', 那么只要能把格式转换回来就可以了。看下面的例子

>>> st = '\u4e2d\u6587'
>>> """u'%s'""" % st
"u'\\u4e2d\\u6587'"
>>> un = """u'%s'""" % st
>>> un
"u'\\u4e2d\\u6587'"
>>> print eval(un)
中文