zbb20170928 解决springmvc在单纯返回一个字符串对象时所出现的乱码情况

Posted Daryll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zbb20170928 解决springmvc在单纯返回一个字符串对象时所出现的乱码情况相关的知识,希望对你有一定的参考价值。

  解决springmvc在单纯返回一个字符串对象时所出现的乱码情况

使 用springmvc框架开发了这么长时间,之前都是直接返回jsp页面,乱码情况都是通过配置和手动编解码来解决,但是今天突然返回一段单纯的字符串 时,发现中文乱码情况解决不了了,下面就给各位分享一下如何解决返回字符串时出现的乱码情况(无需实验,直接使用即可)。

   

    之前我们都是通过在springmvc的核心配置文件中配置视图解析器来返回指定的页面,将数据通过Model对象渲染页面,最后响应给用户,但是这种方式我们是通过在web.xml文件中配置CharacterEncodingFilter就可以解决。

复制代码
 1     <!-- 解决post乱码 -->
 2     <filter>
 3         <filter-name>CharacterEncodingFilter</filter-name>
 4         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 5         <init-param>
 6             <param-name>encoding</param-name>
 7             <param-value>UTF-8</param-value>
 8         </init-param>
 9     </filter>
10     <filter-mapping>
11         <filter-name>CharacterEncodingFilter</filter-name>
12         <url-pattern>/*</url-pattern>
13     </filter-mapping>
复制代码

 

    但是在某种情况下我们不需要对用户返回一个页面,而是单纯给调用接口服务的调用者返回一字符串,这时添加@ResponseBody注解这是必然的,但是你响应的数据中包含中文,则会出现乱码问题,即使你在web.xml文件中配置了解决post请求方式的乱码过滤器,也于事无补,这时就需要通过俩种方式来解决(当然本人只熟悉俩种,并且已经实践过了,好使)。

 

第一种:通过注解的属性解决。

    通过给@RequestMapping中添加produces="text/html;charset=UTF-8"。

第二种:通过在springmvc核心配置文件中配置处理器、映射器解决。

 

复制代码
1     <!-- 2、处理器、映射器 -->
2     <mvc:annotation-driven>
3         <mvc:message-converters register-defaults="true">
4             <bean class="org.springframework.http.converter.StringHttpMessageConverter">
5               <constructor-arg value="UTF-8" />
6             </bean>
7         </mvc:message-converters>
8     </mvc:annotation-driven>
复制代码

解决springmvc在单纯返回一个字符串对象时所出现的乱码情况(极速版)

使 用springmvc框架开发了这么长时间,之前都是直接返回jsp页面,乱码情况都是通过配置和手动编解码来解决,但是今天突然返回一段单纯的字符串 时,发现中文乱码情况解决不了了,下面就给各位分享一下如何解决返回字符串时出现的乱码情况(无需实验,直接使用即可)。

   

    之前我们都是通过在springmvc的核心配置文件中配置视图解析器来返回指定的页面,将数据通过Model对象渲染页面,最后响应给用户,但是这种方式我们是通过在web.xml文件中配置CharacterEncodingFilter就可以解决。

复制代码
 1     <!-- 解决post乱码 -->
 2     <filter>
 3         <filter-name>CharacterEncodingFilter</filter-name>
 4         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 5         <init-param>
 6             <param-name>encoding</param-name>
 7             <param-value>UTF-8</param-value>
 8         </init-param>
 9     </filter>
10     <filter-mapping>
11         <filter-name>CharacterEncodingFilter</filter-name>
12         <url-pattern>/*</url-pattern>
13     </filter-mapping>
复制代码

 

    但是在某种情况下我们不需要对用户返回一个页面,而是单纯给调用接口服务的调用者返回一字符串,这时添加@ResponseBody注解这是必然的,但是你响应的数据中包含中文,则会出现乱码问题,即使你在web.xml文件中配置了解决post请求方式的乱码过滤器,也于事无补,这时就需要通过俩种方式来解决(当然本人只熟悉俩种,并且已经实践过了,好使)。

 

第一种:通过注解的属性解决。

    通过给@RequestMapping中添加produces="text/html;charset=UTF-8"。

第二种:通过在springmvc核心配置文件中配置处理器、映射器解决。

 

复制代码
1     <!-- 2、处理器、映射器 -->
2     <mvc:annotation-driven>
3         <mvc:message-converters register-defaults="true">
4             <bean class="org.springframework.http.converter.StringHttpMessageConverter">
5               <constructor-arg value="UTF-8" />
6             </bean>
7         </mvc:message-converters>
8     </mvc:annotation-driven>
复制代码

以上是关于zbb20170928 解决springmvc在单纯返回一个字符串对象时所出现的乱码情况的主要内容,如果未能解决你的问题,请参考以下文章

20170928-3 四则运算试题生成

zbb20171017 svn Cleanup failed to process the following paths错误的解决

雪球访谈笔记---20170928

20170928-4 每周例行报告

zbb20170811 mysql远程连接报错: Host * is not allowed to connect to this MySQL server,解决方法

20170928习题