转贴为主,中间夹一部分评论(红色的)
原帖地址:http://wanglei8.javaeye.com/blog/265770
使用的构建平台:Tomcat5.5+JDK1.5+Eclipse3.4.1
1.数据库建立为UTF-8格式
2.项目右键属性为UTF-8格式
3.所有页面申明为UTF-8
4.JDBC URL设为:UTF-8
jdbc:mysql://localhost:3306/company?useUnicode=true&characterEncoding=utf-8
5.数据库Driver选择UTF-8格式
6.Tomcat编码改成UTF-8
在server.xml里面增加URIEncoding="UTF-8"
7.加编码过滤器SetCharacterEncodingFilter.java
注意:这个部分是对应于表单用POST来提交的情况,用POST提交时URL部分不会出现诸如param=value¶m=value之类的东西,这样的话登录页面相对会安全点或者说漂亮一点
注意:根据所在包名确定具体使用哪个包
关于编码,其实很奇怪,JAVA作为一个跨平台的东西,为什么J2EE里面诸如JDBC还有Tomcat这些设计者不用UTF-8之类的跨语言编码方式,JAVA最大的卖点在跨平台,既然这样,如果语言都不跨怎么跨平台?(很简单我一个英文WIN上开发的东西结果没注意这点放到一个日文或者中文的WIN上出乱码,这跟跑不动有什么区别?)。做东西的时候无论是C/C++还是JAVA个人都比较推崇Unicode这一编码方案,用C/C++的时候图简单可以使用UTF-16,JAVA则可以使用UTF-8,当然所有的项目都统一使用UTF-8更好。理由很简单啊,如果使用Tomcat默认的ISO9958-1那我要是要输入点中文怎么办?要是用gb2312或者gbk要是把项目从我的中文XP移植到一台英文的LINUX上不是要吐血?所以最好的方案就是统一使用UTF-8!