从字符串中取出一个 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
我目前在 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