以下是我观察到的一些情况。想知道为什么Python的打印行为是这样的,并且可能的修复。Python打印无法同时打印Unicode和字符串
>>> print "%s" % u"abc" # works
>>> print "%s" % "\xd1\x81" # works
>>> print "%s %s" % (u"abc", "\xd1\x81") # Error
对于上述(最后),我得到:UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 0: ordinal not in range(128)
但是,这个工作
>>> print "%s %s" % ("abc", "\xd17\x81") # works
当我做
>>> print "%s %s" % (u"abc", u"\u0441") # Error
其提高UnicodeEncodeError: 'charmap' codec can't encode character u'\u0441' in position 4: character maps to <undefined>
你应该强调:“不要混合Unicode和字节串” – jfs