在Python 3中解析推文中的表情符号

3

我有一个简单的Python脚本,用于获取推文的文本内容。

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

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


导入unicodedata; 打印(unicodedata.name(b"\xf0\x9f\x90\xa3".decode('utf-8'))) 说HATCHING CHICK. 没有了解您的脚本在做什么,很难再多说些什么... - mata
@mata 看起来他正在获取推文的文本,而表情符号显示为\xf0\x9f\x90\xa3,所以他想知道那实际上是什么表情符号... - Aaron
1个回答

1
很可能它是UTF-8编码的(与其他数据一起),只是ASCII文本在ASCII和UTF-8中恰好呈现相同。如果你有一个像b'\xf0\x9f\x90\xa3'这样的bytes,你只需要执行:
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(我的电脑无法显示它,否则我会在这里添加它),这个数字是大多数表情符号的正确范围。正如评论中所指出的那样, unicodedata 报告该字符为 HATCHING CHICK

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