2014-09-03 22:03:22 Primary_wind 阅读数 9506
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27858 人正在学习 去看看 秦子恒

一开始我也纠结了这个问题很久,从微信公众平台上下载下来的例子不是utf-8格式的,但是却可以验证通过。

此时修改加入中文,返回消息会乱码,改成utf-8编码就显示正常了。

再来验证会不通过。

我一直纠结这个问题,其实没必要,只要第一次验证通过即可,后面修改成utf-8编码也不影响公众平台与服务号交互

2018-01-05 18:31:44 qq_24172609 阅读数 3047
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27858 人正在学习 去看看 秦子恒

  最近开发微信服务号,遇到了一个问题,在编写自动回复消息的时候出现乱码,最后发现问题是由于spring mvc的@ResponseBody注解返回字符串时默认返回的是“ISO-8859-1”而不是utf-8。

  虽然大家的项目里面可能都有字符编码过滤器,但是有一个问题在这里,我们设置response.setContentType("text/html; charset=utf-8");时都是在chain.doFilter(request, response);之前设置的,也就是过滤器前处理是设置的响应编码格式,之所以不在后处理时设置是因为后处理时响应内容已经生成此时设置是无效的,必须在响应内容生成之前设置响应编码格式。

  那么问题就出在这个地方,我们虽然设置了响应编码格式,,,可是spring mvc在有@ResponseBody注解的响应是,篡改了我们的响应编码!!!!!!!!!为什么会这样。。。。。我们来剖析一下原因。
  相信大家对spring的Message Converters不会陌生,HttpMessageConverters<T>这个接口是用来把请求信息转化为对象T,把T输出为响应信息的一个接口,在该接口众多的实现类中有一个实现类StringHttpMessageConverter,这个类的作用就是把请求信息转换未字符串,而@ResponseBody注解就是默认调用的这个类,,,而这个类中默认的编码格式就是ISO-8859-1,,所以罪魁祸首找到了,怎么改呢?

我直接添加了

@RequestMapping(value = "/weixin/validation" , method = RequestMethod.POST , produces = "text/html;charset=UTF-8")
这样一个注释在控制器上,
 /**
  * 注意:
	 * "application/json" json格式数据
	 * "application/xml" xml类型数据
	 * "application/x-www-form-urlencoded" 基本类型  jquery默认就是采用的这种
	 * "multipart/form-data" 文件上传
	 * "text/xml"  和application/xml采用的默认编码格式不一样
	 * "text/html"  一般的html
	 */
主要就是
produces = "text/html;charset=UTF-8"
这个配置当然还有很多别的方式,网上也有很多,我没有都尝试,这里把一些链接留下:

Spring MVC @ResponseBody响应中文乱码

Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决




2018-01-31 16:09:04 MZQ1993 阅读数 5357
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27858 人正在学习 去看看 秦子恒

解决办法:

返回的时候转一下

message=newString(message.getBytes(),"ISO-8859-1");

2017-11-06 21:00:00 chyin1024 阅读数 102
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27858 人正在学习 去看看 秦子恒
流程简述:
用户发送信息给腾讯微信服务器,
腾讯微信服务器通过我们在公众号中设置的处理文件(wechat.php),
在这个wechat.php 中的逻辑跳转到相关的处理模块,
逻辑模块将结果返回给微信服务器,
腾讯微信服务器将结果返回给用户



微信回复,中文乱码:

php 解决json_encode中文UNICODE转码问题
http://blog.csdn.net/bjash/article/details/9834497
echo json_encode("中文", JSON_UNESCAPED_UNICODE);


2018-11-21 23:24:41 pei_fang 阅读数 320
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27858 人正在学习 去看看 秦子恒

情况如下:

设置响应文本的内容是中文,打印到控制台检测后中文正常显示,但是在公众号上文本内容是乱码。

问题原因:

post请求,设置返回类型为String,用return 返回XML字符串,微信无法正常解析?

设置返回类型void,也就是不返回,用响应输出数据

response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String parseXml = wechatService.processRequest(request);
out.print(parseXml);

解决问题。

总结:

不能用return返回带中文数据(文本内容是英文没问题),用response返回中文数据。

没有更多推荐了,返回首页