python2.7环境下中文微信昵称或者群组报编码错误
group = bot.groups().search('游否')[0] File "C:\Python27\lib\site-packages\wxpy\api\chats\groups.py", line 71, in search return Groups(filter(match, self)) File "C:\Python27\lib\site-packages\wxpy\api\chats\groups.py", line 61, in match if not match_name(group, keywords): File "C:\Python27\lib\site-packages\wxpy\utils\misc.py", line 185, in match_name if kw in str(getattr(chat, attr, '')).lower(): UnicodeDecodeError: 'utf8' codec can't decode byte 0xe6 in position 0: unexpected end of data
方便提供下操作系统版本嘛? @lyp2008001
@bluedazzle win10企业版
请问问题解决了吗。好像也碰到了这个问题
看起来是 wxpy Windows 下编码的问题,会尽快修复。到时候可能需要重新安装 wxpy 库
刚才研究了下 misc.py 中引入了future.builtins的str if PY2: from future.builtins import str 方法prepare_keywords中的参数如果使用python2.7的默认的str会导致判断isinstance(keyword,str)不成立
导致最后返回的map结果出错。
我暂时的解决办法是 在微信发送端的脚本中同样引入 from future.builtins import str ,然后在search的时候强制下类型转换 示例
from wxpy.compatible import PY2 if PY2: from future.builtins import str
def main(): bot = Bot()
my = bot.friends().search(str('蓦然'))
listen(bot,receivers=my)
嗯嗯,Windows 下系统编码不是 utf-8 所以 future.builtins 的 str 会出错。你可以先那样解决,我在 wxpy develop 分支修复了这个问题。你可以安装这个分支的 wxpy 试试 @leemon9527
@bluedazzle 刚才重新安装了wxpy的develop分支,好像还会报错
File "D:/Seafile/pyproject/PycharmTestProjects/wechat_msg_test/wx_msg.py", line 19, in
ok,我再看看
group = bot.groups().search(u'游否')[0]
'游否' 前面 加一个 u --> u'游否'
解决了
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2018.1.2\helpers\pydev\pydevd.py", line 1664, in
@bluedazzle 该怎么解决?
我下载的最新版
@JustDoItQz 不要把你的文件名命名为 wechat_sender.py 换个名字