因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码,解决办法是不用注解,直接用response,转换编码。
@RequestMapping("/modifyconfiginput")
public @ResponseBody String modifyinput(
@RequestParam(value="id") String id,
@RequestParam(value="timestamp") String timestamp,
HttpServletResponse response
) throws Exception {
ImmediateConfig ic = this.immediatePictureService.findImmediateConfig(id);
String json = "["+"{name:'"+ic.getName()+"',classId:'"+ic.getProductClass().getClassId()+"',pyFile:'"+ic.getPyFile()+"'}]";
System.out.println("json:"+json);
//return json;
// 设置response的ContentType解决中文乱码
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(json);
return null;
}
本文介绍了一种解决Spring MVC项目中使用@ResponseBody返回JSON时出现中文乱码的问题。通过设置HttpServletResponse的ContentType为UTF-8编码,成功解决了中文字符显示乱码的情况。
3754

被折叠的 条评论
为什么被折叠?



