いくつかの Unicode 文字を含む辞書があり、使用しているコンソールは 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)
ここで何が起こっているのですか?印刷でそのエラーが発生するのはなぜですか?