【发布时间】:2015-06-02 04:29:12
【问题描述】:
我有一个列表,其中包含编码为 utf-8 字符的 WhatsApp 表情符号。我用来解码表情符号的表位于http://apps.timwhitlock.info/emoji/tables/unicode
通过这个表,我试图计算使用的表情符号的数量,我已经使用正则表达式技术成功地完成了这项工作。问题是我创建了一个字典,其中键是 utf-8 字符作为字符串,而 key_values 是整数。以下:
print d_emo
for k, v in d_emo.items():
print k.encode('utf8'), v
产生这个输出:
{'\\xF0\\x9F\\x98\\xA2': 2, '\\xF0\\x9F\\x98\\x82': 1, '\\xF0\\x9F\\x98\\x86': 2, '\\xF0\\x9F\\x98\\x89': 1, '\\xF0\\x9F\\x8D\\xB5': 2, '\\xF0\\x9F\\x8D\\xB0': 4, '\\xF0\\x9F\\x8D\\xAB': 2, '\\xF0\\x9F\\x8D\\xA9': 2, '\\xF0\\x9F\\x98\\x98': 1, '\\xE2\\x98\\xBA': 33, '\\xE2\\x98\\x95': 1}
\xF0\x9F\x98\xA2 2
\xF0\x9F\x98\x82 1
\xF0\x9F\x98\x86 2
\xF0\x9F\x98\x89 1
\xF0\x9F\x8D\xB5 2
\xF0\x9F\x8D\xB0 4
\xF0\x9F\x8D\xAB 2
\xF0\x9F\x8D\xA9 2
\xF0\x9F\x98\x98 1
\xE2\x98\xBA 33
\xE2\x98\x95 1
如果我使用此代码:
for k, v in d_emo.items():
print k.encode('utf-8').decode('unicode_escape'), v
我明白了
ð¢ 2
ð 1
ð 2
ð 1
ðµ 2
ð° 4
ð« 2
ð© 2
ð 1
⺠33
â 1
我应该得到笑脸之类的。有什么建议么?这是在 Python 2.7 中。
【问题讨论】:
-
您使用的字体是否包含表情符号的所有字形?
-
@RobbyCornelissen 是的。当我使用 *.readlines() 读取原始文本文件并打印 * 时,它会显示正确的表情符号
-
您的意见是什么(显示
print repr(your_input))?您的问题中显示的不是 utf-8 数据。 -
您也可以使用pypi.python.org/pypi/emoji,例如
python -c "import emoji ; print(emoji.emojize('Python is :thumbsup:', use_aliases=True))"
标签: python unicode encoding utf-8