SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码
原因是因为其中字符串转换和对象转换用的是两个转换器,而String的转换器中固定了转换编码为"ISO-8859-1"
解决办法:
1.返回字符串时,将字符串结果转换
return new String("你好".getBytes(), "ISO-8859-1");
2.添加@RequestMapping注解,配置produces的值
@RequestMapping(value = "/get", produces = {"application/json;charset=UTF-8"})
或者
@RequestMapping(value = "/get", produces = {"text/javascript;charset=UTF-8"}) 或者 @RequestMapping(value="/test",produces="text/plain;charset=UTF-8")
3.也可以 修改默认的字符串的转换器StringHttpMessageConverter
4.也可以配置 spring mvc的转化(跟spring 版本有关系 ,有的版本不好使)
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter" > <property name = "supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>applicaton/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
相关推荐
总的来说,解决Spring MVC3返回JSON数据中文乱码的问题,关键在于正确设置字符编码。无论是使用Java的PrintWriter直接写入UTF-8编码的数据,还是先将数据编码为GBK后写入到ServletOutputStream中,又或者是在框架...
### json 中文乱码解决方案 在处理JSON数据时,经常会出现中文乱码的问题,尤其是在不同编码格式间进行转换时更为常见。本文将详细介绍如何解决JSON中的中文乱码问题,并提供几种简单实用的方法来帮助开发者避免这...
Spring MVC请求参数与响应结果全局加密和解密详解 在本文中,我们将详细介绍Spring MVC请求参数与响应结果全局加密和解密的相关知识点,包括请求参数的加密和解密、响应结果的加密和解密、ContentType的处理等。 ...
本篇文章将深入探讨如何彻底解决Spring MVC中的中文乱码问题,以便于开发者能够流畅地处理中文数据。 首先,当用户通过表单提交中文参数时,可能会遇到乱码问题。确保JSP页面的编码设置为UTF-8,例如在页面头部添加...
### Spring MVC 中的乱码及 RESTful 风格支持 #### 解决乱码问题 在 Spring MVC 中处理中文乱码通常有两种方法: - **设置字符编码过滤器**:通过配置一个全局的字符编码过滤器来解决所有请求的乱码问题。 ```java...
综上所述,解决Spring框架中使用注解处理JSON数据时出现中文乱码的问题主要涉及三个方面的内容:明确客户端和服务端之间的字符集编码、检查并修正XML配置文件以及引入必要的依赖库。通过对这些问题的细致分析和合理...
在开发基于Spring MVC的Web应用程序时,正确配置所需的jar包和Filter是至关重要的步骤。Spring MVC是一个强大的MVC(Model-View-Controller)框架,它为构建Java Web应用提供了丰富的功能和灵活性。以下是对标题和...
Spring MVC可以通过Jackson或Gson库自动将Java对象转换为JSON格式发送给前端,反之亦然。在Controller方法中,可以使用`@ResponseBody`注解将返回值直接转化为JSON响应。 根据提供的文件名,`test.sql`可能包含一些...
当控制器方法上标注了`@ResponseBody`时,Spring MVC会将方法的返回值直接序列化为JSON或XML格式,并作为HTTP响应体返回给客户端。前端可以通过AJAX技术(如jQuery的$.ajax()方法)发送异步请求,并处理后端返回的...
为了在Spring MVC中返回JSON格式的数据,通常会使用一些流行的JSON库如Gson或Jackson。例如,Gson是一个由Google提供的可以将Java对象转换成JSON格式字符串的库。开发者可以通过new Gson().toJson()方法将Java对象...
##### 3.4 如何解决POST请求中文乱码问题,GET的又如何处理呢? - **POST请求**:在web.xml中配置过滤器CharacterEncodingFilter来设置字符编码。 - **GET请求**:同样可以通过配置过滤器解决,也可以通过修改Tomcat...
以下是关于如何在Spring MVC中返回XML和JSON格式数据的详细讲解。 1. **返回XML格式数据** 要返回XML格式的数据,首先,确保返回的内容是符合XML规范的字符串或对象。如果返回的是字符串,那么需要设置正确的字符...
例如,使用Spring MVC时,可以配置`RequestMappingHandlerAdapter`来指定编码: ```java @Configuration public class WebConfig { @Bean public WebMvcConfigurer webMvcConfigurer() { return new ...
此外,除了Struts2框架外,其他如Spring MVC、Hibernate等Java框架同样面临乱码的问题,处理方法大同小异。了解编码和解码机制,掌握正确的字符集使用方法,是每一位Java Web开发者必备的技能。 总之,在使用Struts...
总的来说,解决SpringMVC中`@ResponseBody`注解返回中文乱码问题的关键在于正确配置`HttpMessageConverter`,确保其支持UTF-8编码,并将这些配置放在`<mvc:annotation-driven>`元素之前。通过上述方法,可以有效地...
本文将深入探讨两种解决SpringMvc后台接收JSON数据中文乱码问题的方法。 1. **使用Ajax传输数据** 当前端通过Ajax使用JSON格式向SpringMvc后台发送数据时,可能出现中文乱码。这通常是因为服务器默认的字符编码不...
- 对于响应内容的乱码,可以在视图中设置相应编码,或者在返回JSON时,确保服务器与客户端之间统一编码。 以上是对Spring MVC面试中常见的一些知识点的详细解答,这些内容涵盖了Spring MVC的基本概念、工作流程、...
除了上述的字符编码解决策略,Spring MVC还提供了多种参数绑定注解来处理请求中的不同数据类型: - **`@RequestParam`**:用于绑定HTTP请求参数,适用于GET和POST请求。例如,`@RequestParam("name") String name`...
总结来说,Jackson 2.9.1是一个用于处理JSON的Java库,常与Spring MVC结合使用,通过`@ResponseBody`注解实现将Java对象直接转换为JSON并返回给客户端。在实际应用中,需要注意依赖包的正确引入,以及处理字符集以...
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!-- Support JSON --> <bean class="org.spring...