Spring MVC整合的时候如何解决中文乱码问题。首先中文乱码问题有四个方面:一 页面本身的编码问题;二 客户端传到服务器上的中文数据乱码;三 服务器传回给客户端的中文数据乱码;四 数据库编码问题。
一 页面本身编码问题
https://www.cnblogs.com/DaTouDaddy/p/6519709.html
二 客户端上传数据编码问题
首先解决客户端POST请求服务器数据的问题。在工程的web.xml文件中添加如下过滤器就可以解决中文乱码问题。
<!-- This fiter fix character encoding problems by POST method. -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
接下来解决客户端get请求服务器数据的问题,在tomcat安装目录下server.xml文件中做如下修改就可以解决中文乱码问题。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
如果开发环境使用的时候在maven pom文件里配置的tomcat插件,那么则需要做如下配置。
三 回传数据编码问题
最后来解决在服务器返回中文数据乱码问题。在spring mvc的配置文件做如下修改:
<mvc:annotation-driven >
<mvc:message-converters register-defaults="true">
<!-- 解决@ResponseBody中文乱码 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value = "text/html;charset=UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
四 数据库编码问题
还有一个数据链接是的编码指定问题
jdbc.url=jdbc:mysql://localhost:3306/student?characterEncoding=UTF-8