Springmvc的中文乱码问题主要是两部分,请求乱码和响应乱码。而解决的方法就是将字符集设置为 UTF-8
1.请求乱码
-
Get请求乱码
如果使用的是Tomcat 8及以上的版本,无需设置Tomcat的字符集,因为Tomcat已经默认支持UTF-8编码。但如果使用的Tomcat 8 以下的版本,则需要修改Tomcat的字符集编码,打开Tomcat安装路径,找到Tomcat的配置文件server.xml。
找到一段代码,在后面添加 URIEncoding="UTF-8"保存即可
-
Post请求乱码
解决Post请求乱码需要在web.xml中增加一个过滤器
<filter>
<filter-name>characterEncoding</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>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.响应乱码
对应响应乱码,我们需要在applicationContext.xml文件对字符集编码进行设置
<mvc:annotation-driven conversion-service="conversionService">
<!--设置响应输出字符集-->
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>