从字符串中取出一个 Unicode 字符并对其进行解码

Take a Unicode character from within a string and decode it

我目前在 Python 工作,我正在从网上提取一大堆数据,包括照片的标题。我得到的一些字符串中有 unicode,我想将其显示为原始字符。

我知道如果我输入,例如,

print u'\u00a9'

即会将正确的字符输出到终端。

但是,如果我得到如下字符串:

string = 'Copyright \u00a9 David'

不知道怎么拔出来

我设法用 RegEx 提取了字符代码,但我不知道如何在不出错的情况下将其重新插入。

我试过了:

char = \u00a9
string = 'Copyright' + u'char' + 'David'

这并没有真正奏效。

我需要一种方法来以编程方式提取代码(我可以使用 RegEx 来完成),然后 re-insert 转换为前面带有 u' 的原始字符串。

我认为您误解了 u 是什么。它是一种在代码中识别和显示 unicode 文字 的方式,与将字符串变量从一种表示形式转换为另一种表示形式无关。

您实际需要的是使用 "unicode-escape" 编解码器解码字符串:

>>> print string.decode('unicode-escape')
Copyright © David

将 char 存储为 char = u'\u00a9' 而不是 char = \u00a9。然后,当您附加字符串时,只需执行以下操作:

string = 'Copyright ' + char + ' David'

有一个很好的理由
char = \u00a9
string = 'Copyright' + u'char' + 'David'

不起作用 ;-)

char = u'\u00a9'
string = 'Copyright ' + char + ' David'
print string
>>> Copyright © David