解决POST中文乱码问题
- 在web.xml中添加CharacterEncodingFilter过滤器,设置编码格式
<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标签加入一个属性,来设置编码格式
- (即设置tomcat访问端口的位置)
<Connector URIEncoding='UTF-8' connectionTimeout="2000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
关于CharacterEncodingFilter
关键代码
...
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String encoding = this.getEncoding();
if(encoding != null) {
if(this.isForceRequestEncoding() || request.getCharacterEncoding() == null) {
request.setCharacterEncoding(encoding);
}
if(this.isForceResponseEncoding()) {
response.setCharacterEncoding(encoding);
}
}
filterChain.doFilter(request, response);
}
...