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。

  • 相关阅读:
    Hibernate对象状态
    Session接口常用方法
    Hibernate 映射文件基本概述
    Hibernate domain对象说明
    Hibernate配置文件说明
    Hiberante可配置参数
    Hibernate基本演示
    使用JSON数据格式模拟股票实时信息
    操作系统实验零——操作系统实验环境准备
    Shell脚本之for循环、while循环,if语句、case语句
  • 原文地址:https://www.cnblogs.com/a1304908180/p/10094961.html
Copyright © 2011-2022 走看看