今天在练习过程中遇到SringMVC传输中文乱码问题,找了很久才解决。

  • 数据库设置编码为UTF-8
  • eclipse工作区编码也是UTF-8,控制台打印出中文正常
  • jsp设置编码为UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

js代码如下:

window.onload = function(){

        $.get('list/house.html', function (response, status, xhr) {
            alert(status);
            console.log(response);
        });

    };

但是显示中文变成了,后来找了很久才在这里找到解决办法。原文地址

具体是在springmvc.xml文件当中添加如下配置

<bean id="stringHttpMessageConverter"
    class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/plain;charset=UTF-8</value>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
    <!-- Jackson 是Spring 自带的功能 -->
    <bean id="mappingJackson2HttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
                <value>application/xml;charset=UTF-8</value>
                <value>text/html;charset=UTF-8</value>
                <value>text/plain;charset=UTF-8</value>
                <value>text/xml;charset=UTF-8</value>
                <value>text/javascript;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <mvc:annotation-driven>
        <mvc:message-converters>
            <ref bean="stringHttpMessageConverter" />
            <ref bean="mappingJackson2HttpMessageConverter" />
        </mvc:message-converters>
    </mvc:annotation-driven>

问题解决。

Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐