1

我有以下代码:

u"[%s] - %s" % (a, b.encode('utf-8'))

字符串在哪里,b 是古典aunicodestr

现在这给出了经典错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 2: ordinal not in range(128)

(位置2属于a)

为什么这不起作用?我想如果我将字符串b设为unicode字符串,那么在将字符串连接在一起时它应该不必转换为ascii?

4

1 回答 1

1

这个问题解决了,基本上我是一个不知道重载__str__()方法和__Unicode__()方法的区别的白痴。在从方法返回之前将所有内容转换为 str 时,就会发生整个错误。

在这里留下这个答案,以防有人遇到类似的问题并且不知道__unicode__()类的神奇方法。

于 2013-06-23T08:26:58.583 回答