文档章节

SpringMVC中@ResponseBody中文乱码

大_于
 大_于
发布于 2015/11/14 15:42
字数 203
阅读 197
收藏 16

     常常json以@ResponseBody注解String类型返回,由于 StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1,因此这儿传回去的字符串中的中文常常是乱码,多个?号表示的样子,解决的方法是将StringHttpMessageConverte r默认值改为UTF-8才行。

spring配置文件中添加这两个bean,代码如下:

    <bean name="utf8Charset" class="java.nio.charset.Charset" factory-method="forName" >
        <constructor-arg value="UTF-8" ></constructor-arg>
    </bean>
    <bean
        class="org.springframework.http.converter.StringHttpMessageConverter">
        <constructor-arg ref="utf8Charset"> 
        </constructor-arg>
        <property name="supportedMediaTypes">
            <list>
                <bean class="org.springframework.http.MediaType">
                    <constructor-arg value="text" />
                    <constructor-arg value="plain" />
                    <constructor-arg value="UTF-8" />
                </bean>
                <bean class="org.springframework.http.MediaType">
                    <constructor-arg value="application" />
                    <constructor-arg value="json" />
                    <constructor-arg value="UTF-8" />
                </bean>
            </list>
        </property>
    </bean>


    还需要添加如下几个jar包:

<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>




© 著作权归作者所有

大_于
粉丝 3
博文 40
码字总数 19408
作品 0
南京
技术主管
私信 提问
【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]

Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。 Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用r......

一堆BUG
2013/09/10
796
0
SpringMVC 返回中文字符串时乱码

SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码,原因是因为其中字符串转换和对象转换用的是两个转换器,而String的转换...

费氏家族
2017/10/30
41
0
解决SpringMVC的@ResponseBody返回中文乱码

SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.converter.StringHttpMessageConverter类中可以看到如下代码: ...

爱笑的痴迷者
2016/09/21
41
0
解决spring-mvc @responseBody注解返回json 乱码问题

在使用spring-mvc的mvc的时候既享受它带来的便捷,又头痛它的一些问题,比如经典的中文乱码问题。现在是用json作为客户端和服务端 的数据交换格式貌似很流行,但是在springmvc中有时候会因为...

刘志成
2013/11/15
30.4K
9
解决:后台传值给 ajax 的中文都变成问号?

Java 后台,用的框架是 Spring + SpringMVC + MyBatis 我的原因是,要用 ajax 处理一个 POST 请求,然后传回来的中文就变成了“???” 看 Reponse Header 中的 charset 也都是 UTF-8,没问...

吃兔纸不吐毛
2017/10/25
453
0

没有更多内容

加载失败,请刷新页面

加载更多

从0开始学FreeRTOS-(列表&列表项)-6

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
24分钟前
4
0
Java的23种设计模式,详细讲解(一)

一、概述 设计模式是解决问题的方案,学习现有的设计模式可以做到经验复用。 拥有设计模式词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节。 二、创建型 1. 单例(Singleton...

李红欧巴
40分钟前
5
0
android 使用asynctask结合fragment更新UI(另附线程池管理示例)

https://blog.csdn.net/qq_16064871/article/details/70767949

shzwork
40分钟前
3
0
SpringCloud实现分库分表模式下,数据库实时扩容方案

本文源码:GitHub·点这里 || GitEE·点这里 一、项目结构 1、工程结构 2、模块命名 shard-common-entity: 公共代码块shard-open-inte: 开放接口管理shard-eureka-7001: ...

知了一笑
41分钟前
5
0
js--时间切割装换工具类

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 修改data原型对象Format方法 ......

zhengzhixiang
51分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部