zoukankan      html  css  js  c++  java
  • springmvc当要返回中文字符串时出现乱码

    当过滤器,页面编码都对,tomcat版本在8以上(8内部默认用utf-8)

    在方法参数中加上,produces="text/html;charset=UTF-8"

    绝对可以解决!!!!

    这篇写的比我详细

    方法一: 

    在@RequestMapping(value="/ValidMobile",produces = "text/html;charset=UTF-8")中,加上produces = "text/html;charset=UTF-8"。

    @RequestMapping(value="/ValidMobile",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String validMobile(@RequestBody String param) {
    User user = new Gson().fromJson(param, User.class);
    ResponseBean rb = new ResponseBean;
    rb.setResultMsg("中文乱码");
    return new Gson().toJson(rb);
    }
     

    方法二(推荐):

    在spring-servlet.xml配置文件中加入

    <!-- 注解驱动 -->
    <mvc:annotation-driven>
    <!-- 指定http返回编码格式 -->
    <mvc:message-converters>
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
    <property name="supportedMediaTypes">
    <list>
    <value>text/html;charset=UTF-8</value>
    <value>application/json;charset=UTF-8</value>
    <value>*/*;charset=UTF-8</value>
    </list>
    </property>
    </bean>
    </mvc:message-converters>
    </mvc:annotation-driven>
    ---------------------
    作者:kuaile966
    来源:CSDN
    原文:https://blog.csdn.net/kuaile966/article/details/82872169
    版权声明:本文为博主原创文章,转载请附上博文链接!

    这个是产生乱码原因

    在使用SpringMVC的时候,最开始的时候在配置文件中使用<mvc:annotation-driven />去自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,这是spring MVC为@Controllers分发请求所必须的。再后来,Ajax请求需要返回字符串,遂在控制器上使用@ResponseBody注解来实现,这时候遇到的一个问题是,返回中文字符的时候会乱码,关于中文乱码的解决办法倒时有很多。SpringMVC的@ResponseBody注解使用的处理类为Spring的org.springframework.http.converter.StringHttpMessageConverter类,返回中文乱码的原因是其默认处理的字符集是ISO-8859-1。

  • 相关阅读:
    关于JDK中的设计模式
    关于Java中的构造方法和set方法()给属性赋值
    关于Object[]数组强转成Integer[]类型的数组.
    [ImportNew]Java中的Timer类和TimerTask类
    关于Linux最基本总结
    关于数组
    关于Linux系统和Windows系统中文件夹的命名规范
    关于数组集合之间的转换
    关于Java获取系统信息
    关于Windows常用命令
  • 原文地址:https://www.cnblogs.com/a1304908180/p/10094961.html
Copyright © 2011-2022 走看看