SSM 后台返回数据给前台,json中文乱码解决方法
2018-01-21 21:00
761 查看
场景:
在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web.xml 中进行编码过滤了,但还是乱码,让人很头疼。
解决办法:
第一种:这种方法,估计很多人都知道,那就在 controller 中的每个方法的 @RequestMappering 注解中进行编码设置,如下所示:
@RequestMapping(value = "/queryUserById",produces = "text/plain;charset=utf-8") 这种方法可以解决返回乱码问题,但是存在一个问题就是:需要在每一个的方法中都要写上
produces = "text/plain;charset=utf-8"
这句设置,这样无形中,让我们的代码看起来,有那么一些不美观,作为一个慵懒的程序猿,也不会允许我们一直在重复做写这代码,
所以有了第二种方法。
第二种:与第一种方法相比,这种方法只需要在 spring-mvc.xml 配置文件中配置一次就好,省去了我们重复写的麻烦,配置内容如下:
<!--自定义消息转换器的编码,解决后台传输json回前台时,中文乱码问题-->
<mvc:annotation-driven >
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter" >
<property name = "supportedMediaTypes">
<list>
<value>application/json;charset=utf-8</value>
<value>text/html;charset=utf-8</value>
<!-- application 可以在任意 form 表单里面 enctype 属性默认找到 -->
<value>application/x-www-form-urlencoded</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" ></bean>
</mvc:message-converters>
</mvc:annotation-driven>加上这段配置,保存重新运行,再次访问,会发现,原先的中文乱码都已经正常显示了。
在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web.xml 中进行编码过滤了,但还是乱码,让人很头疼。
解决办法:
第一种:这种方法,估计很多人都知道,那就在 controller 中的每个方法的 @RequestMappering 注解中进行编码设置,如下所示:
@RequestMapping(value = "/queryUserById",produces = "text/plain;charset=utf-8") 这种方法可以解决返回乱码问题,但是存在一个问题就是:需要在每一个的方法中都要写上
produces = "text/plain;charset=utf-8"
这句设置,这样无形中,让我们的代码看起来,有那么一些不美观,作为一个慵懒的程序猿,也不会允许我们一直在重复做写这代码,
所以有了第二种方法。
第二种:与第一种方法相比,这种方法只需要在 spring-mvc.xml 配置文件中配置一次就好,省去了我们重复写的麻烦,配置内容如下:
<!--自定义消息转换器的编码,解决后台传输json回前台时,中文乱码问题-->
<mvc:annotation-driven >
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter" >
<property name = "supportedMediaTypes">
<list>
<value>application/json;charset=utf-8</value>
<value>text/html;charset=utf-8</value>
<!-- application 可以在任意 form 表单里面 enctype 属性默认找到 -->
<value>application/x-www-form-urlencoded</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" ></bean>
</mvc:message-converters>
</mvc:annotation-driven>加上这段配置,保存重新运行,再次访问,会发现,原先的中文乱码都已经正常显示了。
相关文章推荐
- SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码
- spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500
- 解决springmvc 从后台获取json数据传入前台jsp中文显示???的方法
- 解决javaWEB中前台传数据到后台中文乱码问题的3种方法
- 解决javaWEB中前台传数据到后台中文乱码问题的3种方法
- Spring MVC 对于返回JSON格式数据的中文乱码 解决方法
- 解决javaWEB中前台传数据到后台中文乱码问题的3种方法
- 解决javaWEB中前台传数据到后台中文乱码问题的3种方法
- Java 前台后台数据传递、中文乱码解决方法
- spring boot 解决后台返回 json 到前台出现中文乱码的问题
- Spring MVC后台返回JSON数据中文乱码问题解决
- java后台传递json到前台 中文乱码解决方法
- 解决SpringMvc后台接收json数据中文乱码问题的几种方法
- Java后台使用get方式远程跨域请求,返回数据为中文乱码解决方法
- SSM框架前台传中文到后台乱码问题的解决办法
- jsp数据传递到后台为中文乱码的解决方法
- 解决服务器返回JSON数据中文乱码问题
- 用struts2开发的App后台,返回json数据中文为问号的解决办法
- Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法
- 4种方法解决后台接受前台中文信息乱码的问题