`

springmvc 发送ajax中文乱码的几种解决办法

阅读更多
  使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的??,研究了一下,有几种解决办法。

  我使用的是sping-web-3.2.2,jar

  方法一:

  在@RequestMapping里面加入produces = "text/html;charset=UTF-8"
  @RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
  public @ResponseBody String configrole() {
    ......
  }


方法二:

因为在StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1

所以拿到源代码,修改成UTF-8并打包到spring-web-3.2.2.jar

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String>
{
  public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
  ..........
}
 


方法三:

修改org.springframework.http.MediaType它的构造方法的参数,并在applicationContext-mvc.xml 加入配置
public MediaType(String type, String subtype, Charset charset) {
    super(type, subtype, charset);
}


    <bean id="stringHttpMessageConverter"
        class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <bean class="org.springframework.http.MediaType">
                    <constructor-arg value="text" />
                    <constructor-arg value="plain" />
                    <constructor-arg value="UTF-8" />
                </bean>
            </list>
        </property>
    </bean>


方法四:

  直接将org.springframework.http.converter.StringHttpMessageConverter 里面的属性defaultCharset设置成utf-8
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
     <property name="defaultCharset" value="UTF-8"/>
</bean>


上面的几种方法经过测试都是可行的,网上还有其他的办法,后面找到一并加进来。
分享到:
评论
3 楼 ljl961890233bear 2015-06-17  
           <bean id="stringHttpMessageConverter"
                      class="org.springframework.http.converter.StringHttpMessageConverter">
                    <constructor-arg value="UTF-8" />
                </bean>


可行!
2 楼 wxynxyo 2014-10-15  
yybray 写道
帅哥,为什么我配置了还是有乱码呢?

你把你的server.xml 也修改一下看看
1 楼 yybray 2014-10-07  
帅哥,为什么我配置了还是有乱码呢?

相关推荐

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

    ,研究了一下,有几种解决办法。  我使用的是sping-web-3.2.2,jar  方法一:  在@RequestMapping里面加入produces = “text/html;charset=UTF-8” @RequestMapping(value = "/configrole", method = Request...

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

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

    Spring MVC面试宝典1.pdf

    ##### 3.4 如何解决POST请求中文乱码问题,GET的又如何处理呢? - **POST请求**:在web.xml中配置过滤器CharacterEncodingFilter来设置字符编码。 - **GET请求**:同样可以通过配置过滤器解决,也可以通过修改Tomcat...

    Java面试框架高频问题2019

    **问题八:如何解决POST请求中文乱码问题,GET的又如何处理呢?** - POST请求可以通过配置过滤器解决。 - GET请求需要在客户端编码为UTF-8。 **问题九:SpringMVC的异常处理?** - 使用`@ControllerAdvice`和`@...

    “平安行”驾校信息管理系统的设计与实现开题报告【答辩高分内容】.docx

    JSP中文乱码问题的探讨与解决方法[J]. 福建电脑, 2020, 36(04):36-41. - [2] 赵晓丹. 网页开发中的JSP技术分析[J]. 南方农机, 2019, 50(20):247-248. - [3] 段震. 浅谈MySQL数据库有关数据备份的几种方法[J]. 山西...

Global site tag (gtag.js) - Google Analytics