今天继续做软件工程的课程设计,遇到了汉字编码问题(我是菜鸟手工流,纯J2SE)。因为要从PostgreSQL里读取数据,而PostgreSQL的编码是UTF-8,于是整个Java项目使用UTF-8编码。但是,只要数据在Tomcat中走一遍(这包括提交的表单、URL传值~~),就会变成传说中的iso-8859-1,据说可以改web.xml,但是服务器的东西总不能乱动不是?万一有其他挂在上面的网站正好不能用UTF-8来解码...翻了一下以前FRB的代码,发现可以用下面的方法解决。
首先假设网站的内容在/web下,编译好的.class文件在/web/WEB-INF/classes下。
然后在项目中新建一个filter包,在其中新建类EncodingFilter.java,代码如下:
用自己的过滤器把Tomcat的过滤器override后,还要在web.xml中设置一下:
/web/WEB-INF/web.xml:
这样,全部的汉字就正确编码为UTF-8了,甚至在URL中都可以!
PS.
张天庆老师说的对,用UTF-8才是好孩子,GBK可以靠边了~