Emojis

时间:2016-08-05 02:47:45

标签: python string unicode encoding

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

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

我用Google搜索了这个字符串(以及其他字符串),并且在上面的字符串this page的情况下,iemoji.com一直是提出它们的唯一网站之一,它将字符串列为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

建立任何关系

1 个答案:

答案 0 :(得分:2)

这与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")。