SpringMVC返回中文数据到前台界面出现乱码
1、当使用 SpringMVC在Controller里直接返回中文字符串时,有可能在前端显示乱码。
解决方案:
后台Controller中对传回的中文字进行URL编码
@RequestMapping("/handleStudent.do")
public @ResponseBody String handleStudent(String oper, Student student, String id[])
throws UnsupportedEncodingException {
String temp = studentService.handleStudent(oper, student, id);
// 对传回的中文字符串进行编码
return URLEncoder.encode(temp, "UTF-8");
}
前台界面中对接收到的字符串进行URL解码
decodeURIComponent(response.responseText)
此时中文乱码问题就解决啦。
2、当使用 SpringMVC在Controller里接收中文字符串时,有可能也会显示乱码。
解决方案:
尝试进行编码格式转换,需要将字符串转化为字节数组,在字节层面完成编码格式转换后生成新的字符串。
@RequestMapping("/findsome.do")
public @ResponseBody StudentQuery findStudentsByPage(Boolean _search, String filters, int page, int rows)
throws UnsupportedEncodingException {
if (filters != null) {
// 转码
filters = new String(filters.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(filters);
}
return studentService.findStudentsByPage(_search, filters, page, rows);
}