SpringMVC乱码问题解决

avatar 2019年10月29日18:42:45 评论 32 views

刚才帮一个朋友调试一个他们同事搭建的 SSM 项目,测试一个表单数据提交的时候出现中文乱码。

包括表单提交输入中文,后台接受的时候是乱码乱码;还有就是返回给前台字符串的时候中文乱码。解决这两种乱码需要两处配置

这是两种经典的乱码,这里记录一下,给需要的朋友

一、表单 POST 请求中文乱码

在 web.xml 里添加

  1. <!--post乱码过滤器-->
  2.     <!-- 配置springMVC编码过滤器 -->
  3.     <filter>
  4.         <filter-name>CharacterEncodingFilter</filter-name>
  5.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  6.         <!-- 设置过滤器中的属性值 -->
  7.         <init-param>
  8.             <param-name>encoding</param-name>
  9.             <param-value>UTF-8</param-value>
  10.         </init-param>
  11.         <!-- 启动过滤器 -->
  12.         <init-param>
  13.             <param-name>forceEncoding</param-name>
  14.             <param-value>true</param-value>
  15.         </init-param>
  16.     </filter>
  17.     <!-- 过滤所有请求 -->
  18.     <filter-mapping>
  19.         <filter-name>CharacterEncodingFilter</filter-name>
  20.         <url-pattern>/*</url-pattern>
  21.     </filter-mapping>

 

二、返回字符串中文乱码

在 springmvc.xml 里添加

  1. <mvc:annotation-driven >
  2.     <!-- 消息转换器 -->
  3.         <mvc:message-converters register-defaults="true">
  4.           <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  5.             <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
  6.           </bean>
  7.         </mvc:message-converters>
  8.     </mvc:annotation-driven>

 

 

这里再补充一些其他中文乱码的解决方案

  1. Tomcat 设置 UTF8,修改 Tomcat 的 server.xml,在 <Connector> 标签里添加  URIEncoding="UTF-8"
  2. 数据库创建时选择编码设置为 utf8,排序方式 utf8-general-ci
  3. IDEA 设置里 Editor->File Encodings 里设置模块编码为 UTF-8,全局设置 UTF-8
  4. HTML或者 jsp/ftl 文件,head 里设置 <meta charset="UTF-8">

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: