在获取实际文本时,我没有问题可以执行以下功能:
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/