我有以下代码:
u"[%s] - %s" % (a, b.encode('utf-8'))
其中a
是unicode
字符串,b是经典str
现在这给出了经典错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 2: ordinal not in range(128)
(职位2属于a)
为什么这不起作用?我认为如果我将字符串b
设为unicode字符串,那么在将字符串连接在一起时不应该转换为ascii?
答案 0 :(得分:1)
这个问题已经解决了,基本上我是一个不知道重载__str__()
方法和__Unicode__()
方法之间区别的白痴。在从方法返回之前将所有内容转换为str时,会出现整个错误。
在这里留下这个答案,以防万一有人遇到类似的问题但不知道__unicode__()
魔术方法。