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

3

使用 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>

我该如何解决这个问题?

1个回答

6
看起来你在向API传递高字节数据,但它不喜欢这样做(\xd7是“乘号”字符,看起来像一个X)。我不确定打印的目的是什么,但将其更改为print "l: " + repr(l)print "l: ", l至少可以让你克服上述错误,假设你不想将正文转换为Unicode(我假设它没有...)。
如果这不能帮助你,我们需要更多细节。你的输入来自哪里?正文是Unicode还是字节字符串?你使用的是Python 2.7还是3.x?

尽管这个线程很旧,但你可以看到它正在访问Python 2.7库,如threading.py等。 - franklin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接