python将表情符号转换为HTML十进制

时间:2017-08-20 08:02:52

标签: python django emoji

我有一个使用twitter公共API的django应用程序。

收到的应用程序的推文包含一些表情符号,我想将其转换为HTML十进制等值。

正在搜索python emoji我找到了两个图书馆(emoji_unicodepyemoji)。

我使用以下两个库来获取推文正文中包含的表情符号的小数值;

import emoji_unicode, pyemoji
def emoji_callback(e):
    t = pyemoji.encode(e.unicode).replace('\\u','')
    return "&#%s;" % str(int(t, 16))
emoji_unicode.replace(u'Time to ⛽ ',emoji_callback)

上一个示例工作正常,但对于其他一些表情符号,它不起作用,它会引发invalid literal for int() with base 16异常。例如,以下代码不起作用。

emoji_unicode.replace(u'Time to ',call)

问题

1-有没有更简单的方法来获取推文正文中表情符号的HTML小数而不是在这里实现的内容?

2-如果不是,我如何解决该异常并使代码适用于所有emojis?

2 个答案:

答案 0 :(得分:1)

这样的事可能会有所帮助:)。

def emoji_calback(e):
    '&#x{0};'.format(e.unicode.encode('unicode_escape').decode('utf8').lstrip('\\U0u'))

答案 1 :(得分:0)

您可以使用类似的内容:

pyemoji.entities('Hey ?')

这将返回包含表情符号string十进制代码的Unicode HTML。 它返回这样的unicode字符串:

u'Hey 😀'