从Python 3中的推文中解码表情符号

时间:2016-03-31 14:10:06

标签: python python-3.x twitter decoding emoji

我有一个简单的python脚本,可以获取推文的文本。

然而,表情符号是以某种方式编码的,因此它们在输出\ xf0 \ x9f \ x90 \ xa3中看起来像这样。

有没有办法从这个输出中找出这是什么表情符号?

1 个答案:

答案 0 :(得分:1)

赔率是UTF-8编码(与其他数据一起,只是ASCII文本恰好以ASCII和UTF-8呈现)。

如果您有bytes b'\xf0\x9f\x90\xa3',请执行以下操作:

b = b'\xf0\x9f\x90\xa3'
txt = b.decode('utf-8')

如果您将其作为str收到,则这可能是错误的解码为latin-1或其他一些代码页,因此只需撤消它并使用UTF-8重做:

b = '\xf0\x9f\x90\xa3'
txt = b.encode('latin-1').decode('utf-8')
# If it's not latin-1, could be sys.getdefaultencoding()

得到序数为0x1f423(我的电脑无法显示它,或者我已经在这里添加了它),这对于大多数表情符号来说都是正确的范围。 As noted in the commentsunicodedata将该字符报告为HATCHING CHICK