У меня есть список, в котором есть смайлики WhatsApp, закодированные как символы utf-8. Таблица, которую я использую для декодирования смайликов, находится в http://apps.timwhitlock.info/emoji/tables/unicodeКак отобразить/преобразовать строку utf-8 в соответствующий символ
С этой таблицей я пытаюсь подсчитать количество используемых смайликов, которые я успешно выполнил с помощью методов регулярных выражений. Проблема в том, что я создал словарь, в котором ключи являются символами 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 *, он отображает соответствующие смайлики – superhero
, каков ваш ввод (показать 'print repr (your_input)')? То, что показано в вашем вопросе, - это не данные utf-8. – jfs