如何在python中比较表情符号

时间:2018-10-01 05:12:28

标签: python python-2.7 unicode emoji

我有一组ics数据,我正在尝试在python中进行解析。该日期使用emjois表示不同类型的事件。因此,我试图在if语句中使用这些emjois告诉事件类型是什么。我正在尝试这样比较:

if event == '✈️':
    do something here

当事件等于✈️时,它的评估结果为true。我猜想它与编码有关,但是我无法将其包裹住。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

该特定字符表示为两个代码点。在Python 2中,您还需要声明源文件的编码以在源中使用非ASCII,并在事件和要比较的项目中使用Unicode字符串:

#coding:utf8
event = u'\u2708\ufe0f'
if event == u'✈️':
    print 'match'

输出:

match

您的事件可能不是Unicode字符串。选中type(event)print repr(event)以查看其实际内容。

您可以获取非Unicode字符串进行比较,但是必须以相同的方式对其进行编码。同样,需要print repr(event)来查看问题所在。理想情况下,将输入文本解码为Unicode,以代码中的Unicode处理,编码回字节以将文本写回数据库,文件,网络管道等。

此外,切换到Python 3,它具有更好的Unicode处理能力。

答案 1 :(得分:0)

尝试先转换为字符串,然后对该字符串进行编码。

#convert to unicode
teststring = unicode(teststring, 'utf-8')

#encode it with string escape
teststring = teststring.encode('unicode_escape')

#then run check on test string. 
if event == testString
  do #this code.