1.springmvc 3.2以上的版本解决乱码的方法:

  第一步:在配置中加入:

   <mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false" />
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

   第二步:需要的加入的jackson jar如下:

      <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.1.0</version>
</dependency>

2.springmvc 3.1解决中文乱码的方法:

  第一步:在配置文件中加入以下代码:

   <mvc:annotation-driven>

     <mvc:message-converters register-defaults="true">

       <bean class="com.util.spring.UTF8StringHttpMessageConverter"/>

     </mvc:message-converters>

   </mvc:annotation-driven>

第二步:自定义一个编码转换类:

     public class UTF8StringHttpMessageConverter extends
AbstractHttpMessageConverter<String> {   public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
   private final List<Charset> availableCharsets;    public UTF8StringHttpMessageConverter() {
   this(DEFAULT_CHARSET);
   }    public UTF8StringHttpMessageConverter(Charset defaultCharset) {
   super(new MediaType("text", "plain", defaultCharset), MediaType.ALL);
   this.availableCharsets = new ArrayList<Charset>(Charset .availableCharsets().values());
   }   @Override
   protected boolean supports(Class<?> clazz) {
   return String.class.equals(clazz);
   }   @Override
   protected String readInternal(Class<? extends String> clazz,
   HttpInputMessage inputMessage) throws IOException,
   HttpMessageNotReadableException {
   MediaType contentType = inputMessage.getHeaders().getContentType();
   Charset charset = contentType.getCharSet() != null ? contentType.getCharSet() : DEFAULT_CHARSET;
  return FileCopyUtils.copyToString(new InputStreamReader(inputMessage .getBody(), charset));
   }   @Override
   protected void writeInternal(String t, HttpOutputMessage outputMessage)
   throws IOException, HttpMessageNotWritableException {
   MediaType contentType = outputMessage.getHeaders().getContentType();
   Charset charset = contentType.getCharSet() != null ? contentType .getCharSet() : DEFAULT_CHARSET;
   FileCopyUtils.copy(t, new OutputStreamWriter(outputMessage.getBody(), charset));
  }    protected List<Charset> getAcceptedCharsets() {
   return this.availableCharsets;
   }   @Override
  protected Long getContentLength(String s, MediaType contentType) {
   if (contentType != null && contentType.getCharSet() != null) {
  Charset charset = contentType.getCharSet();
   try {
   return (long) s.getBytes(charset.name()).length;
   } catch (UnsupportedEncodingException ex) {
   throw new InternalError(ex.getMessage());
   }
   } else {
   return null;
   }
   }
  }

  第三步:加入需要的jackson包:

      <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.8.8</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.8.8</version>
</dependency>

springmvc使用@ResponseBody返回json乱码解决方法的更多相关文章

  1. SpringMVC的@ResponseBody返回JSON,中文乱码问题的解决.

    SpringMVC的@ResponseBody,返回json,如果有中文显示乱码的解决办法. 在SpringMVC的配置文件中 <bean class="org.springframe ...

  2. 解决SpringMVC的@ResponseBody返回中文乱码

    SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.conve ...

  3. SpringMVC 使用@ResponseBody返回json 中文乱码与返回实体类报错

    有时候我们发现接收的是中文,返回却是个?.这确实是个蛋疼的问题,Spring中解析字符串的转换器默认编码居然是ISO-8859-1 /** * Implementation of {@link Htt ...

  4. SpringMVC 使用@ResponseBody返回json 中文乱码

    这确实是个蛋疼的问题,Spring中解析字符串的转换器默认编码居然是ISO-8859-1 既然找到问题了,那就必须想办法改过来,不同版本的Spring好像方法还不一样,网上不少说的都是Spring3. ...

  5. SpringMVC参数绑定、Post乱码解决方法

    从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上. springmvc中,接收页面提交的数据是通过方法形参来接收.而不是在control ...

  6. springmvc 通过@ResponseBody 返回json的中文乱码解决方案2个

    1.方法上面的RequestMapping要加上红色的部分.   @ResponseBody     @RequestMapping(value = "/search", prod ...

  7. springMVC使用@ResponseBody返回json

    json格式:{"totle":22,"rows":"sss"} map格式:{totle=22, rows=sss} 一.springMV ...

  8. 处理springMvc中responsebody返回中文乱码

    法一:   @RequestMapping(value="/getUsersByPage",produces = public String getUsers  法二:在sprin ...

  9. ssm 注解@ResponseBody 返回json 乱码问题

    方法一:在@RequestMapping上加入 produces方法 @RequestMapping(value = "/upload.do",method = RequestMe ...

随机推荐

  1. Winform的多线程问题

    http://blog.csdn.net/Maths_bai/article/details/6000744

  2. POP3、SMTP、IMAP和Exchange的区别在哪里?

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:永遇乐链接:http://www.zhihu.com/question/24605584/answer/29039357来源: ...

  3. Android Animation

    Android中常用两种动画模式,tween animation和frame animation,即补间动画和帧动画,但在android3.0中又引入了一个新的动画系统:property animat ...

  4. andriod系统裁剪心得

    亲们,,有人做过 将android系统总内存减少,并保持系统的稳定运行 方面的么?...比如将512M的内存换成256M,系统依然稳定运行,, 我目前,从三个方面下手,,,1.删减系统中不需要使用的a ...

  5. java基于xml配置的通用excel单表数据导入组件(五、Action处理类)

    package xxxxxx.manage.importexcel; import java.io.File; import java.util.HashMap; import java.util.M ...

  6. 【Android 开源】:最火的Android开源项目 第01期

    GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你 ...

  7. linux 下的sublime

    Sublime Text 2 的安装 : 在官方网站下载Linux版本  Or  执行 #  wget http://c758482.r82.cf2.rackcdn.com/Sublime%20Tex ...

  8. ARM学习笔记4——加载存储指令

    一.字数据传送指令 作用:用于把单一的数据传入或者传出一个寄存器. 1.LDR指令 1.1.作用 根据<addr_mode>所确定的地址模式从内存中将一个32位的字段读取到目标寄存器< ...

  9. arcGis引入Dll报无法嵌入互操作类型错误解决方法

    arcGis引入Dll报“无法嵌入互操作类型"ESRI.ARCGIS.Geometry.PointClass".请改用通用接口."   解决方法:设置引用DLL的“嵌入互 ...

  10. 去掉有序数组中重复数字 原地 leetcode java (最简单的方法)

    1.利用荷兰国旗的思路,每次记住最后一个位置,遇到一个不重复的数,放在它后面,代码很简单. Given a sorted array, remove the duplicates in place s ...