У меня есть словарь с несколькими символами Юникода, а используемая консоль настроена на печать UTF-8, но когда я пытаюсь распечатать ключ из словаря, я получаю сообщение об ошибке.Почему мои символы Юникода из моего словаря не печатаются?
import sys
print u'\xc9'
print sys.stdout.encoding
unicode_dict = {u'a': 3,
u'b': 4,
u'c': 5,
u'\xc9': 1,
u'\xc8': 2}
for k, v in unicode_dict.iteritems():
print "{0}: {1}".format(k, v)
Когда я запускаю этот код, я получаю следующее сообщение об ошибке:
É
UTF-8
a: 3
Traceback (most recent call last):
File "unicodetest.py", line 12, in <module>
print "{0}: {1}".format(k, v)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc9' in position 0: ordinal not in range(128)
Что здесь происходит? Почему печать дает мне эту ошибку?
Спасибо! По какой-то причине я думал, что, поскольку в функции формата есть символы Unicode, форматированная строка будет автоматически закодирована в Unicode. – supercheetah