如何在字符串(python,perl)中查找表情符号,unicode字符和表情符号的文本描述?

时间:2014-09-28 14:52:20

标签: python regex perl unicode emoticons

表情图标的检测和计数已经解决previously

作为对此问题及所提供解决方案的后续跟进,我希望能够将检测到的表情符号,unicode字符和表情符号链接到相应的(文本)描述:

  • 表情符号(西方和东方,例如来自维基百科的List_of_emoticons),
  • unicode字符(例如,unicode网站提供的U1F600.pdf(直接链接包含在上面提到的上一个stackoverflow问题中),
  • 其他表情符号类型,例如来自Twitter中经常使用的表情符号列表(来自emojipedia网站的twitter-emoji-list)。

是否有任何全面的解决方案可用于在python或perl中进行此类翻译,类似于Swift中实现的方法? 如果没有,你能制作一个脚本,为字符串中的表情符号/表情符号提供文字描述吗?

2 个答案:

答案 0 :(得分:7)

perl示例使用charnames

use 5.014;
use strict;
use warnings;
use utf8;
use open qw(:std :utf8);
use charnames ':full';

my @faces = split //, '';
for (@faces) {
    say sprintf "U+%05X %s %s",
        ord($_), $_, charnames::viacode(ord($_));
}

打印

U+1F604  SMILING FACE WITH OPEN MOUTH AND SMILING EYES
U+1F600  GRINNING FACE
U+1F608  SMILING FACE WITH HORNS

答案 1 :(得分:2)

Python有unicodedata导入模块,其中包含所有Unicode字符的数据:

import unicodedata as ud
s = '\U0001F604\U0001F600\U0001F608'
for c in s:
    print('{} U+{:5X} {}'.format(c,ord(c),ud.name(c)))

输出:

 U+1F604 SMILING FACE WITH OPEN MOUTH AND SMILING EYES
 U+1F600 GRINNING FACE
 U+1F608 SMILING FACE WITH HORNS