2

这是我的代码(我使用的是 python 2.7 )

    result = " '{0}' is unicode or something: ".format(mongdb['field'])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb0' in position 27: ordinal not in range(128)

看起来我从 mongodb 读取的字符串包含 unicode。它会抛出这个错误。如何修复它以将此 unicode 与自定义字符串 'is unicode or something:' 连接起来?

提前致谢

更新

result = u" '{0}' is unicode or something: ".format(mongdb['field']) 

为我工作

4

2 回答 2

9

使用unicode格式字符串(推荐):

result = u" '{0}' is unicode or something: ".format(mongdb['field'])

或对字段进行编码:

result = " '{0}' is unicode or something: ".format(mongdb['field'].encode('utf-8'))
于 2013-09-13T22:28:25.910 回答
1

你必须知道从 MongoDB 输出的文本实际上是什么编码。 \xB0建议使用 Windows-1252 而不是 UTF-8,所以试试这个:

 result = ("'{0}' is unicode or something"
           .format(mongdb['field'].decode('windows-1252'))
于 2013-09-13T22:29:04.007 回答