求大神指导为啥微信公众平台自动回复乱码啊,我用springmvc做的以前好好的突然乱码了。

lina酱 2014-12-03 02:45:28
具体代码如下,本人新手啊,,,跪求解决

// 验证url
@RequestMapping("/url")
public String url(HttpServletResponse response,
HttpServletRequest request) throws Exception {

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
System.out.println("----");
//验证
String echostr = request.getParameter("echostr");
String sb = "";
//验证请求是否来自微信服务器
if (XmlUtil.checkSignature(request,cs.getConfig().getToken())) {
if(!"".equals(echostr) && null!=echostr){
sb = echostr;
}else{
Map<String, String> map = XmlUtil.getXml(request);
public String ControlSkip(Map<String, String> map) throws Exception {
// TODO Auto-generated method stub

Config config = cs.getConfig();
System.out.println("用户发送xml"+map);

String Msgtype = map.get("xml.MsgType").toString();

StringBuffer sb = new StringBuffer();



if("text".equals(Msgtype)){


//执行天气预报
if(map.get("xml.Content").contains("天气") && StringUtils.isNotBlank(map.get("xml.Content").replace("天气", ""))){

sb.append(qs.getWeather(map));
}else{
//执行字符串处理方法
sb.append(qs.reply(map,""));
}

}else if("location".equals(Msgtype)){
//执行地址处理方法
List<News> news = ds.getNewsInfo(map.get("xml.Location_X"),map.get("xml.Location_Y"));

String xmlstr = ConvertXml.getNewsXml(map.get("xml.FromUserName"), map.get("xml.ToUserName"), map.get("xml.CreateTime"), news.size()+"", news,config.getUrl());
sb.append(xmlstr);

}else if("voice".equals(Msgtype)){
//执行语音处理方法
String xmlstr = ConvertXml.getTextXml(map.get("xml.FromUserName"), map.get("xml.ToUserName"), map.get("xml.CreateTime"), "对不起,语音功能还在开发中,敬请期待", map.get("xml.MsgId"));
sb.append(xmlstr);
}else if("event".equals(Msgtype)){
String event = map.get("xml.Event").toString();

if("subscribe".equals(event)){

//执行关注处理方法
sb.append(ss.SubscribeR(map));
}
if("CLICK".equals(event)){
//自定义菜单点击事件
sb.append(ws.findInfoByClick(map));

}

}

return sb.toString();
}


sb = ws.ControlSkip(map);

}
}

System.out.println("微信接收"+sb);
System.out.println("111111111111");
out.print("<script language='javascript>");
out.print("alert(sb);");
out.print("</scrpit>");
out.print(sb);
out.print("daw");
out.flush();
out.close();

return null;


}


}
// TODO Auto-generated method stub
Config config = cs.getConfig();
Subscribe sub = this.findById(1);
String xmlstr="";
if(0 == sub.getReplyType()){
xmlstr = ConvertXml.getTextXml(map.get("xml.FromUserName"), map.get("xml.ToUserName"), map.get("xml.CreateTime"),sub.getContent(), map.get("xml.MsgId"));
}else if(1 == sub.getReplyType()){

List<News> lst = new ArrayList<News>();
News news = new News();
news.setPicUrl(config.getUrl()+"/upload/subscribe/"+sub.getImageUrl());
news.setTitle(sub.getImageTitle());
news.setContext(sub.getJcontent());
news.setSource("subscribe");
news.setUrl(config.getUrl());
lst.add(news);

xmlstr = ConvertXml.getNewsXml(map.get("xml.FromUserName"), map.get("xml.ToUserName"), map.get("xml.CreateTime"), lst.size()+"", lst,config.getUrl());
}


return xmlstr;
}
...全文
257 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主的问题解决没?
wyx100 2014-12-03
  • 打赏
  • 举报
回复
试试不同编码集解码
raosay1 2014-12-03
  • 打赏
  • 举报
回复
控制台用new String()试试不同编码集解码再编码看看是哪个
疯狂熊猫人 2014-12-03
  • 打赏
  • 举报
回复
是不是微信公众平台自动回复的内容编码集改变了?
业余草 2014-12-03
  • 打赏
  • 举报
回复
是输出到控制台乱码吗,控制台的编码可以改的!!
lina酱 2014-12-03
  • 打赏
  • 举报
回复
引用 3 楼 xmt1139057136 的回复:
有可能不是utf-8编码
不知道怎么了,我的tomcat下面service设置的也是UTF-8,,,以前还好着呢,,突然这样了,,有点不理解了,,不知道是不是项目冲突了
业余草 2014-12-03
  • 打赏
  • 举报
回复
有可能不是utf-8编码
lina酱 2014-12-03
  • 打赏
  • 举报
回复
引用 1 楼 u010800530 的回复:
是不是编码的问题...
我改了编码还是不行 <!-- 编码过滤器 --> <filter> <filter-name>Spring character encoding filter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Spring character encoding filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>不知道怎么了,,,,
u010800530 2014-12-03
  • 打赏
  • 举报
回复
是不是编码的问题...

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧