我有一些twits的集合,我想检查它们中的表情符号,但看起来该集合的编写程序转换为字符串中的所有表情符号,例如''是': - )'在文字和''是':D'等所有表情符号。如果我们尝试检查unicode代码点,我们会在':-)'.encode('utf-8')
等于b':-)'
的同时''.encode('utf-8')
等于'b'\xf0\x9f\x98\x8a
,并且相等检查失败。使用utf-16
:':-)'.encode('utf-16')
等于b'\xff\xfe:\x00-\x00)\x00'
和''.encode('utf-16')
为b'\xff\xfe=\xd8\n\xde'
。那么有没有办法转换文本表示,如': - )'回到表情符号'。
答案 0 :(得分:3)
使用dictionary将任何文字表情符号转换回表情符号,例如如下:
2#1
4#no_data
不幸的是,至少还有两项任务:
2#1
3#no_data
4#no_data
中删除(虚假)嵌入式文本表情符号,例如>>> dict_emo = { ':-)' : b'\xf0\x9f\x98\x8a',
... ':)' : b'\xf0\x9f\x98\x8a',
... '=)' : b'\xf0\x9f\x98\x8a', # Smile or happy
... ':-D' : b'\xf0\x9f\x98\x83',
... ':D' : b'\xf0\x9f\x98\x83',
... '=D' : b'\xf0\x9f\x98\x83', # Big smile
... '>:-(' : b'\xF0\x9F\x98\xA0',
... '>:-o' : b'\xF0\x9F\x98\xA0' # Angry face
... }
>>> print( dict_emo[':)'].decode('utf-8'))
>>> print( dict_emo['>:-('].decode('utf-8'))
>>> print( dict_emo[':-D'].decode('utf-8'))
>>>
>>>
>>> dict_emot= { ':-)' : b'\xf0\x9f\x98\x8a'.decode('utf-8'),
... ':)' : b'\xf0\x9f\x98\x8a'.decode('utf-8'),
... '=)' : b'\xf0\x9f\x98\x8a'.decode('utf-8'), # Smile or happy
... ':-D' : b'\xf0\x9f\x98\x83'.decode('utf-8'),
... ':D' : b'\xf0\x9f\x98\x83'.decode('utf-8'),
... '=D' : b'\xf0\x9f\x98\x83'.decode('utf-8'), # Big smile
... '>:-(' : b'\xF0\x9F\x98\xA0'.decode('utf-8'),
... '>:-o' : b'\xF0\x9F\x98\xA0'.decode('utf-8') # Angry face
... }
>>> print( dict_emot[':)'] )
>>> print( dict_emot['>:-o'] )
>>> print( dict_emot['=D'] )
>>>
微笑下巴