遇到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格式
详情请移步:
本文固定链接: