服务器搭在SAE上 解析XML部分用了lxml
这部分代码:
def POST(self):
str_xml = web.data()
xml = etree.fromstring(str_xml)
content = xml.find("Content").text
msgType=xml.find("MsgType").text
fromUser=xml.find("FromUserName").text
toUser=xml.find("ToUserName").text
replytext = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"
return replytext%(fromUser, toUser, str(int(tim.time())), msgType, "Message: " +content)
===========================================
找到原因了,输入中文就没法返回。。。 难道默认不是unicode的吗?
===========================================
最后发现原因在于我用的微信的语言是英文,结果输入中文就没有反应 把语言改成中文就没事了,这算是微信的一个bug?
不是bug,我用的微信的语言是英文,输入中文可以有回应,你输入什么他就输出什么,很简单。
msgType 中获取的和你要发送的可以不同,你这里写的稍微有点问题,不过回复文字还是可以的。
我习惯在python文件开始中加一行
# -*- coding:utf8 -*-
所以没有你中英文的问题,可能是编码方面的问题吧。