将Unicode表情符号的字符串转换

3

我有一个字符串列表,基本上代表Unicode表情符号,例如:

emoji[0] = 'U+270DU+1F3FF'

我希望将这个“几乎”是unicode表情符号的表示转换为真正的表情符号表示,以便我可以搜索包含这些表情符号的文本文档,例如:
emoji[0] = emoji[0].replace('U+', '\U000')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-4: truncated \UXXXXXXXX escape

我该如何实现这个目标?
2个回答

3
一种适用于可变数字表示的解决方案:
>>> import re
>>> e = 'U+270DU+1F3FF'
>>> def emojize(match):
...     return chr(int(match.group(0)[2:], 16))
>>> re.sub(r"U\+[0-9A-F]+", emojize, e)
'✍'

2

这是因为270D有4个数字,而1F3FF有5个数字:

>>> e = 'U+270D'
>>> print e.replace('U+', '\U0000').decode('unicode-escape')
✍
>>> e = 'U+1F3FF'
>>> print e.replace('U+', '\U000').decode('unicode-escape')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接