今天遇到这么一个问题,用js调用java的get请求,得到的json数据中中文无法正常显示,jsp文件中都是申明utf-8格式的,查询了一番,发现问题出现在@ResponseBody上
@ResponseBody默认的编码格式为ISO-8859-1
,需要修改,在@GetMapping中加入produces的内容
参考:springmvc @ResponseBody乱码,兼容UTF-8格式
java代码
@Controller public class ExamController { @Autowired private ExamService examService; @GetMapping(value = "/getPaper", produces = "application/json; charset=utf-8") @ResponseBody public String getPaper(HttpSession session) { Paper paper = null; try { paper = this.examService.getPaper(); }catch(SystemException e){ session.setAttribute("msg", e.getMessage()); }catch(Exception e1) { e1.printStackTrace(); } System.out.println(paper.toString()); return paper.toString(); } }
或者配置文件中添加bean
<bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <array> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" /> </bean> </array> </property> </bean>
来源:https://www.cnblogs.com/d-i-p/p/10994372.html