如何让你的jee程序运行后没有乱码的烦恼,以下是我的经验:
1、源代码文件全部使用utf-8编码,如java文件,配置文件,jsp文件,js文件,xml文件,properties文件等,全部使用utf-8的编码方式。这里需要注意,在用ant编译java代码时,需要指定encoding="UTF-8",native2ascii时,也要指定encoding="UTF-8"。
2、如果使用的web服务器是tomcat,则需要设置一下/conf/server.xml文件,注意红色字体(URIEncoding="UTF-8")是增加的:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
3、如果连接的mysql数据库,则需要设置数据库的“database charset为utf8”,database collation为ascii_general_ci。并且在配置连接数据库的串指定characterEncoding=utf-8
如
jdbc.url=jdbc:mysql://10.3.3.90/test_db?characterEncoding=utf-8
4、使用过滤器,在web.xml文件中配置过滤器,如可使用spring带的过滤器(注意要放在所有filter的最前面):
<filter> <filter-name>encodingFilter</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>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>