【问题标题】:Decoding emojis from tweets in Python 3在 Python 3 中从推文中解码表情符号
【发布时间】:2016-07-20 01:13:53
【问题描述】:

我有一个简单的 python 脚本来获取推文的文本。

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

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

【问题讨论】:

  • import unicodedata; print(unicodedata.name(b"\xf0\x9f\x90\xa3".decode('utf-8'))) 说HATCHING CHICK。如果不知道您的脚本到底在做什么,很难说更多......
  • @mata 听起来他正在获取推文的文本,并且表情符号显示为\xf0\x9f\x90\xa3,所以听起来他想知道实际上是什么表情符号......

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


【解决方案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 comments、unicodedata 将字符报告为HATCHING CHICK。

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 2021-02-26
    • 2020-05-11
    • 2016-10-02
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 2017-10-28
    相关资源
    最近更新 更多