如何将变量传递给unicode / raw(ur"")转换函数

时间:2014-06-01 03:59:21

标签: python text unicode

在获取实际文本时执行以下功能没有问题:

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

1 个答案:

答案 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%'