乱码分为请求乱码和响应乱码。
请求乱码:
-get请求:在tomcat的server.xml中的 8080端口的地方,添加URIEncoding=utf-8
-post请求:request.setCharacterEncoding(“UTF-8”)
响应乱码:response.setContextType(“text/html;charset=utf-8”)
在SpringMVC中,我们不需要自己去获取参数,而是SpringMVC自动帮我们装配,这时,我们就咩办法通过上边两种方式设置编码
解决方案
可以通过Filter设置编码,Spring MVC给我们封装了一个编码Filter:CharacterEncodingFilter,这个Filter提供两个参数,一个encoding:指定post请求编码,forceEncoding:设置响应编码格式。<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<!--指定post请求编码格式-->
<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>