tomcat5下的中文问题?

03-12-05 agilejava

最近下了一个tomcat5,发现以前的一个Filter不能用了。问题如下:

这个过虑器的主要作用是设置字符集,类似下面的代码

request.setCharacterEncoding("gb2312");
<p>

以前在tomcat4下面调用

requet.getParameter()
时,中文可以正常处理;

但在tomcat5下就全是乱码了,

request.setCharacterEncoding("gb2312");
就好像失效了一样。

如果用下面的代码就没有问题了

String user = request.getParameter("username");
String user2 = new String(user.getBytes("iso8859-1"));
<p>

这是什么原因啊,请指教!谢谢!

raynix
2003-12-05 18:53

很可能是因为tomcat5是sevlet spec2。4的RI,所以直接用spec2。3的配置会有问题。

agilejava
2003-12-06 13:28

今天没有用filter,直接在一个servlet中测试下面的句子:

request.setCharacterEncoding("gb2312");

同样的语句在tomcat4中没有问题,从request中取出的中文是正常的,但在tomcat5中取出的中文却是乱码,这是怎么回事?

谢谢!

agilejava
2003-12-06 16:03

昨天给apache发了一个bug报告,有人也发现了这个问题,据apahce说,tomcat在connector中增加了一个属性URIEncoding="GBK",设置了这个属性以后,就没有中文问题了。但这样好像使用得程序中灵活性差了些,比如对big5的支持就得自己编码实现了,在tomcat4中可以根据客户的language来自动在filter中设置request中Encoding,但在tomcat5中这样设置就没有用了,不知道各位有没有更好的解决方法。

bullboss
2003-12-07 03:30

什么也不加,就会OK,参看tomcat5的servlet的例子

2Go 1 2 下一页