UnicodeEncodeError:'charmap'编解码器无法编码字符

use*_*308 3 python

使用wolfram alpha api时,Python会抛出这个:

Traceback (most recent call last):
  File "c:\Python27\lib\threading.py", line 530, in __bootstrap_inner
    self.run()
  File "c:\Python27\lib\site-packages\Skype4Py\utils.py", line 225, in run
    handler(*self.args, **self.kwargs)
  File "s.py", line 38, in OnMessageStatus
    if body[0:5] == '!math':wolfram(body[5:], '')
  File "s.py", line 18, in wolfram
    print "l: "+l
  File "c:\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\xd7' in position 3
: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)

我该怎么解决这个问题?

Eli*_*ens 6

看起来你正在将高字节数据传递给API,并且它不喜欢(\ xd7是"Times"字符;看起来像X).我不确定该打印的目的是什么,但是将其更改为print "l: " + repr(l)或者print "l: ", l至少可以让您超过上述错误,假设您不希望将身体转换为unicode(我假设不是...).

如果这没有帮助,我们需要更多细节.你的意见来自哪里?是身体unicode,还是字节串?你在使用python 2.7或3.x吗?