java项目中用ajax传递json,返回前台时中文出现问号(乱码问题)的解决办法

首先看一下没有解决前的状态:

java 上传返回json数据格式错误 java返回json数据乱码_java 上传返回json数据格式错误

 

我用的框架是ssm,在springMVC中我配置了编码格式为utf-8,每个jsp页面也用了utf-8,

在利用ajax向后台提交的时候也定义了dataType: applicaption / json,但返回到前台依旧是问号,后台显示没有问题

后来找资料,才发现了问题的所在:

  因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码。

这里我的解决方法是:

@RequestMapping(value = "/login" , method = RequestMethod.POST , produces = "application/json; charset=utf-8")
    @ResponseBody

之后看返回前台的json

java 上传返回json数据格式错误 java返回json数据乱码_java 上传返回json数据格式错误_02

 所以这个问题也就解决了!欢迎阅读本文,如果有什么问题可以留言,争取第一时间回复你,谢谢!