【问题标题】:Python3 src encodings of Emojis表情符号的 Python3 src 编码
【发布时间】:2016-12-11 08:14:20
【问题描述】:

我想从 python(3) src 打印表情符号

我正在开展一个分析Facebook Message histories 的项目,在下载的原始 htm 数据文件中,我发现很多表情符号显示为带有问号的框,就像无法显示值时一样。如果我将这些符号作为字符串复制粘贴到终端中,我会得到诸如\U000fe328 之类的值。这也是我通过 BeautifulSoup 运行 htm 文件并输出数据时得到的输出。

我在 Google 上搜索了这个字符串(和其他字符串),并且始终提供它们的唯一网站之一是 iemoji.com,在上述字符串 this page 的情况下,该字符串将字符串列为 Python Src。我希望能够将这些字符串打印为它们对应的表情符号(毕竟,它们在收到消息时最初是表情符号),环顾四周后,我发现了一个 src 编码at this page 的映射,它将上面的类似字符串映射到表情符号字符串名称。然后我找到了this emoji string names to Unicode 列表,大部分似乎将表情符号名称映射到 Unicode。如果我尝试打印出这些值,我会得到很好的输出。喜欢关注

>>> print(u'\U0001F624')
????

有没有办法将这些“Python src”编码映射到它们的 unicode 值?如果不是因为原始 src 映射丢失了 unicode 库中大约 50% 的 unicode 值,那么链接这两个库将起作用。如果我最终不得不这样做,有没有一种好方法可以找到给定表情符号的 Python Src 值?根据我的测试表情符号字符串等于它们的 Unicode,例如'????' == u'\U0001F624',但我似乎无法与\U000fe328 建立任何关系

【问题讨论】:

  • u'\U0001F624' == '????',这是一个私人使用的字符。我猜 Facebook Messenger 将其用作 Unicode 标准中未定义的表情符号。
  • 但必须有一些系统?几乎每一种 Src 编码或私人使用字符都被引用到 iemoji.om 上的表情符号。有什么方法可以在不抓取网站的情况下自动获取这些信息?

标签: python string unicode encoding


【解决方案1】:

这与 Python 无关。像\U000fe328 这样的转义只包含一个代码点的十六进制表示,所以这个是U+0FE328(这是一个私人使用的字符)。

现在很多表情符号被分配给代码点,例如。 ? 是U+01F624 — FACE WITH LOOK OF TRIUMPH。

在分配这些之前,各种程序使用private use ranges 中的各种代码点来表示表情符号。 Facebook 显然使用了私人使用字符U+0FE328。从这些代码点到标准代码点的映射是任意的。其中一些可能根本没有标准等效项。

因此,您需要查找的是一个表格,该表格告诉您这些旧分配中的哪些对应于哪个标准代码点。

GitHub 上的 php-emoji 似乎包含这些映射。但请注意,这是 PHP 代码,字符表示为 UTF-8(例如,上面的字符将是 "\xf3\xbe\x8c\xa8")。

【讨论】:

  • 谢谢,您回答了我的问题。 php-emoji 项目看起来可能是一个解决方案。我只是将 UTF-8 字符转换为 unicode 并使用该映射(对于阅读的任何人,this 是您转换为 unicode 的方式)
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 2018-09-10
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多