[关闭]
@lzb1096101803 2016-03-19T20:54:06.000000Z 字数 579 阅读 569

微信公众号乱码问题

电话面试


我先说说乱码问题出在哪
用户关注后提示关注信息,本来已在公司的测试服务器测试成功了,也没有乱码,同时因为项目是科技厅的,属于政府项目,不能我们远程连接部署,只能去当场部署项目,比较麻烦,所以只能发给那边的工作人员部署,打包给他们后关注后发现乱码了。

不能总是要发给工作人员部署,所以希望能一次改正这个问题
第一时间我们是想到说是服务器的编码,因为项目的编码是没问题的,UTF-8的,问工作人员,发现真的不是,本来以为可以直接改系统编码就可以了,但是被告知linux上部署了很多项目,不能直接改,否则会影响其他项目,所以只能想其他方法

既然系统不行的话那就只能从程序上进行修改,
数据库没问题,程序本身编码没问题
那么应该是与微信的交互过程中发现问题,

关注后回调我们的接口,我们返回关注后需要发送的消息给微信,那么这个过程是那个环节出现问题呢

既然微信是以urf-8发过来的,项目以utf-8编码处理,这个过程应该没问题,那我们编辑完消息之后返回回去有问题,我发现原来是响应的时候没有设置编码,所以以系统默认的编码响应回去了,微信看到不是utf-8的,所以以系统默认编码解码,按这样发送消息就乱码了。

因此我们尝试在响应体中设置响应编码告诉微信,我们文字的编码是utf-8的,所以就发送成功了

setCharacterEncoding("utf-8")

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注