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

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

最佳答案

如果您的示例中源字符串仅包含ASCII字符,则很简单:

mynewstr = unicode(mystr)


否则,您需要知道原始字符串字节的编码,并使用该编码转换为unicode。例如。如果您知道来源是UTF-8:

mynewstr = mystr.decode('utf-8')


例如。

>>> print mystring
FOO 20\N40%
>>> unicode(mystring)
u'FOO 20\\N40%'
>>> mystring.decode('utf-8')
u'FOO 20\\N40%'

关于python - 如何将变量传递给unicode/raw(ur“”)转换函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23976638/

10-12 16:37