`

springmvc 使用 @ResponseBody注解 返回中文乱码

 
阅读更多

在使用@ResponseBody 时,返回String字符串,其中有中文。后台返回时还没有乱码,但是在前台jsp页面取值时出现乱码,中文都以 ? 的形式显示。

 

解决办法: 

在spring-mvc.xml中修改如下配置

<mvc:annotation-driven >
    	<mvc:message-converters register-defaults="true">
           	<bean class="org.springframework.http.converter.StringHttpMessageConverter">    
			   <property name="supportedMediaTypes">    
			       <list>    
		                <value>text/html;charset=UTF-8</value>  
                		<value>text/plain;charset=UTF-8</value>  
                		<value>application/json;charset=UTF-8</value>
			       </list>    
			   </property>    
		   </bean> 
    		
    	</mvc:message-converters>
    </mvc:annotation-driven>

 

 

 

<mvc:annotation-driven ></mvc:annotation-driven >中加入如上配置即可。

 

原因:在StringHttpMessageConverter中解析文本默认编码是iso-8859-1,源码如下:

 

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {

	public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");


	private final Charset defaultCharset;

	private final List<Charset> availableCharsets;

	private boolean writeAcceptCharset = true;
.....
省略其他

 

 

修改了 配置,可将编码设置为utf-8。

 

 

 

 

分享到:
评论

相关推荐

    SpringMVC中解决@ResponseBody注解返回中文乱码问题

    本文将详细介绍如何解决SpringMVC中`@ResponseBody`注解返回中文乱码的问题。 首先,我们可以尝试使用`@RequestMapping`注解的`produces`属性来指定响应内容的MIME类型和字符集。例如: ```java @RequestMapping...

    SpringMVC解决乱码

    然而,在使用SpringMVC时,可能会遇到乱码问题,例如在使用@ResponseBody注解时返回的数据出现乱码。在本文中,我们将讨论解决SpringMVC乱码问题的两种方法。 方法一:配置AnnotationMethodHandlerAdapter 在...

    Spring MVC面试宝典1.pdf

    在控制器中,可以使用@ResponseBody注解返回JSON数据给前端。 ##### 3.4 如何解决POST请求中文乱码问题,GET的又如何处理呢? - **POST请求**:在web.xml中配置过滤器CharacterEncodingFilter来设置字符编码。 - **...

    springMVC资料

    解决这个问题通常需要在服务器端和客户端都设置正确的字符编码,例如在SpringMVC中,可以在Controller方法上使用`@ResponseBody`注解,并指定`produces="text/plain;charset=UTF-8"`来确保响应内容使用UTF-8编码。 ...

    SpringMVC请求/响应乱码问题解决方案解析

    //@RestController注解相当于Controller注解和ResponseBody注解的结合体 @RestController @RequestMapping(value = "item",produces = "application/json;charset=utf8") public class ItemController {} 此外,还...

    Springmvc如何返回xml及json格式数据

    总结,Spring MVC通过`@ResponseBody`注解和指定`produces`属性可以方便地返回XML和JSON格式的数据。返回XML时需要关注字符编码,返回JSON时则可以直接返回对象。避免一些错误尝试,如直接返回XML字符串或未序列化的...

    用ajax传递json到前台中文出现问号乱码问题的解决办法

    后来发现,因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码。 这里我使用了注解来解决: @...

    解决SpringMvc后台接收json数据中文乱码问题的几种方法

    当前端通过Ajax使用JSON格式向SpringMvc后台发送数据时,可能出现中文乱码。这通常是因为服务器默认的字符编码不支持UTF-8导致的。以下是两种解决方法: - 方式一:在Controller方法中手动转码 在接收到请求参数...

    分享SpringMVC归纳

    - 使用`@ResponseBody`注解将Java对象转换为JSON数据。 ```java @RequestMapping(value = "/items", method = RequestMethod.POST) public @ResponseBody Item addItem(@RequestBody Item newItem) { // 业务...

    springmvc 发送ajax出现中文乱码的解决方法汇总

    在开发Web应用时,Spring MVC和Ajax的交互过程中,经常遇到中文乱码的问题。这个问题主要出现在数据从服务器传输到客户端的过程中,由于编码设置不正确,导致中文字符无法正常显示。以下将详细介绍四种解决Spring ...

    Spring MVC面试题(2022最新版)

    **@ResponseBody注解的作用**:用于将控制器的方法返回对象转化为响应体返回给前端。 **@PathVariable和@RequestParam的区别**: - `@PathVariable`用于获取URL路径中的变量值。 - `@RequestParam`用于获取URL查询...

    SpringMVC【入门】篇

    3. 文件上传:SpringMVC 支持传统方式和跨服务器方式的文件上传,需要配置 Filter 解决中文乱码问题,并考虑 Tomcat 对某些操作的限制。 4. 异常处理:通过 @ExceptionHandler 注解定义全局异常处理器,实现统一的...

    SpringMVC面试题(2024最新版).docx

    **处理中文乱码**: POST请求通过设置Filter解决,GET请求可以通过设置`CharacterEncodingFilter`。 **异常处理**: 可以自定义异常处理器,比如使用@ControllerAdvice和@ExceptionHandler注解。 **获取Request、...

    springmvc-restful

    - 使用`@RequestBody`和`@ResponseBody`注解来序列化和反序列化请求和响应数据。 - 为每个资源定义清晰的URI结构,遵循CRUD原则(Create、Read、Update、Delete)。 在实际开发中,理解并熟练运用这些知识点能...

    Springmvc完成ajax功能实例详解

    通过使用`@ResponseBody`注解和Jackson库,我们可以方便地将Java对象转换为JSON,然后通过AJAX发送到客户端。同时,注意设置正确的字符编码,以确保中文字符能正确显示。通过实践这些知识点,你可以在你的项目中轻松...

    SpringMVC面试题(2020最新版).pdf

    处理中文乱码问题,可以设置HttpServletRequest的编码方式,对于POST请求,可以在过滤器中设置request.setCharacterEncoding("UTF-8");GET请求一般默认处理正确,但如果URL编码了,也需要解码。 Spring MVC的异常...

    SpringMVC面试题.pdf

    - 在控制器方法上添加`@ResponseBody`注解,表明返回的是JSON数据。 - 在Ajax请求中,设置请求类型为GET或POST,指定请求URL,然后在成功回调中处理响应的JSON数据。 7. **处理乱码问题**: - 对于请求参数的...

    SSM集成应用

    - **中文乱码问题**:解决客户端与服务器间字符集不一致导致的问题。 - **自定义参数绑定实现日期转换**:通过自定义Converter或Formatter实现复杂类型的转换。 #### SSM集成 **4.1 整合分析** SSM框架整合主要...

Global site tag (gtag.js) - Google Analytics