spring mvc 3 @ResponseBody 返回json字符串乱码

大家都知道是因为StringHttpMessageConverter 这个类默认的字符格式是ISO-8859-1

在网上搜索了一大堆解决方案,因为版本过低,3.0.5的spring 无奈这种方法用不了

@RequestMapping()注解内加上produces = “application/json;charset=utf-8”

  

1 <mvc:annotation-driven>
2 <!-- 消息转换器 -->
3 <mvc:message-converters register-defaults="true">
4 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
5 <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
6 </bean>
7 </mvc:message-converters>
8 </mvc:annotation-driven>

 


 

上面的方法也试过了也不行,spring版本太低

 废话不说,直接简单粗暴上才艺,因为处理字符串和对象的不是一个类,所以我直接把返回String类型改成了对象类型,最后问题解决

public String
public Object

 


jsp加上
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF8"%>

 


编辑web.xml
<!--springMVC start-->
<filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
   </init-param>
   <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>encodingFilter</filter-name>
   <url-pattern>/mvc/*</url-pattern>
</filter-mapping>

 


有什么问题欢迎留言,bye

 

posted on 2022-08-23 17:00  big竹子  阅读(50)  评论(0编辑  收藏  举报