遇到Json从Java后台传到前端乱码的问题,
设置格式为text/json */ response.setContentType("text/json"); /*设置字符集为’UTF-8’*/ response.setCharacterEncoding("UTF-8"); 加了这两个,可以了,谢谢。
数据返回到前端的最后一步:reponse.getWriter.print(jsonString)处如果没有做处理,就很有可能出现乱码,因此,加上response.setCharacterEncoding("utf-8");就搞定了
参考如下:
/** * 通过JSON查询并处理FAQ信息 * @author 002101 * @since version1.0,2011-11-21 * */ @Override public String execute() { PrintWriter out = null; String atr = null; try { /* 获得response */ HttpServletResponse response = ServletActionContext.getResponse(); /* 设置格式为text/json */ response.setContentType("text/json"); /*设置字符集为’UTF-8’*/ response.setCharacterEncoding("UTF-8"); out = response.getWriter(); /* 查询FAQ信息 */ List<Faq> faqs = this.faqService.faqInLogin(); /* 将FAQ信息保存到session */ ServletActionContext.getRequest().getSession().setAttribute("faqs", faqs); /* 转变成JSON格式 */ atr = JSONObject.quote(JSONUtil.toJSONString(faqs)); out.print(atr); out.flush(); return "loginBefore"; } catch (Exception e) { e.printStackTrace(); return "loginBefore"; } finally { if (out != null) { out.close(); } } }
项目要求,从后台异步传输数据并且定时刷新,异步更新数据,response.setContentType(“text/json”); 设置成JSON格式的数据, response.setCharacterEncoding(“UTF-8”); 把字符集设置成“UTF-8”格式,防止出现乱码, atr = JSONObject.quote(JSONUtil.toJSONString(faqs));
out.print(atr);转成JSON格式
详情请移步:http://blog.csdn.net/maoxiao1229/article/details/7255441