Python - 用ASCII字符替换unicode表情符号

时间:2017-05-05 05:56:44

标签: python unicode emoji

我的周末项目有一个问题。我正在编写一个Python脚本,从不同的源获取一些数据,然后将所有内容吐出到esc-pos打印机。正如你可能想象的那样,pos打印机并不像emojis那样......

所以这样的文字:

可爱!!!!!!!!

给了我这个字符串:

'\u53ef\u7231!!!!!!!!\U0001f60d\U0001f60d\U0001f60d\U0001f60d\U0001f60d\U0001f60d\U0001f60d\U0001f61d'

打印机产生的结果与我想要的结果完全不同。所以我需要用其他东西替换这些非ASCII字符。我并不关心第一个角色,但我确实关心表情符号。使用像unidecode(str(text))这样的东西至少会将它们剥离出来,但我想把它们转换成更有用的东西。要么像[:-D]这样的经典表情符号,要么进入[用心形眼睛微笑]。

我的问题是......怎么会这样做呢?手动为最常见的表情符号创建查找表似乎有点乏味,所以我想知道是否还有其他我可以做的事情。

2 个答案:

答案 0 :(得分:2)

试试这个

import unicodedata
print( unicodedata.name(u'\U0001f60d'))

结果是

SMILING FACE WITH HEART-SHAPED EYES

答案 1 :(得分:0)

我遇到了同样的问题,并使用以下功能解决了该问题:

import demoji

def deEmojify(inputString):
    return demoji.replace_with_desc(inputString.encode('utf-16', 'surrogatepass').decode('utf-16'))