web工程处理乱码的心酸史,足足的搞了一天,终于弄好了,现在总结一下,来给大家分享,也使自己以后记的更清楚。
应注意一下几点:
1,将编码过滤器放在web.xml所有过滤器的第一个位置,并且只能有一个编码过滤器,防止产生影响。
如下: <filter>
<filter-name>CharsetFilter</filter-name>
<filter-class>
filter.CharsetFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>bignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2,保证过滤器设置的编码与页面的编码和数据库的编码还有web服务器(比如tomcat)的编码格式都一样
如果是jsp页面:<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
那么对应的数据库编码也应改为utf8编码;
如果使用tomcat服务器,它默认的编码格式为iso-8859-1,则也应改为UTF-8
在server.xml文件中改为:
<Connector port="8888" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="30" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
如此修改完后,工程中的乱码应该得以解决了。