在获取实际文本时执行以下功能没有问题:
In [7]: str = ur"FOO 20\N40%"
In [8]: str
Out[8]: u'FOO 20\\N40%'
但在实际情况中,单词"FOO 20\N40%"
存储在变量mystring
中。
这样做的方法是什么?我尝试了但失败了:
In [13]: mynewstr = ur(mystr)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-13-0379c497611f> in <module>()
----> 1 mynewstr = ur(mystr)
NameError: name 'ur' is not defined
答案 0 :(得分:2)
如果源字符串仅包含ASCII字符,那么很容易:
mynewstr = unicode(mystr)
否则,您需要知道原始字符串字节的编码并使用它来转换为unicode。例如。如果您知道源是UTF-8:
mynewstr = mystr.decode('utf-8')
E.g。
>>> print mystring
FOO 20\N40%
>>> unicode(mystring)
u'FOO 20\\N40%'
>>> mystring.decode('utf-8')
u'FOO 20\\N40%'