Python中的UTF-8编码问题,用ascii字符串加入utf-8(实际插值)

时间:2013-06-23 02:56:34

标签: python encoding utf-8

我有以下代码:

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

其中aunicode字符串,b是经典str

现在这给出了经典错误:

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

(职位2属于a)

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

1 个答案:

答案 0 :(得分:1)

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

在这里留下这个答案,以防万一有人遇到类似的问题但不知道__unicode__()魔术方法。