请教:Tomcat 5环境下的jsp中文乱码问题(分别针对POST、GET方法)
ETCN 2005-01-13 03:57:36 我知道这个问题肯定已经问过很多次了,不过我搜索了一下,虽然帖子不少,看完以后还有些疑问想请教一下。
1、从我看过的一些相关文章来看,对于不同的jsp平台,乱码的解决方法并不相同,往往在Tomcat上挺好的办法,拿到其他平台反而更乱了。似乎确实没有一种一劳永逸的办法解决所有平台上的中文乱码问题是吗?如果有,应该怎么做呢?
2、如果仅针对Tomcat 5平台,我看到过有文章介绍的方法是通过设置一个 filter 来解决POST方法的编码问题,而通过在 server.xml 里的 Connector 里加入 URIEncoding="GBK" 来解决GET方法的编码问题。
设置 filter 比较简单,不过在修改 server.xml 文件的时候遇到了一些问题:
我的机器是将Tomcat与IIS整合到了一起,也就是可以通过 localhost/jsp/ 来访问 tomcat目录\webapps\jsp目录下的内容。在 Connector 里加入 URIEncoding="GBK" 的结果是只针对通过 http://localhost:8080/ 方法访问的内容有效,毕竟 Connector 里指定的port是 8080 。如果我将port改成80,那么整个tomcat都不能启动了。
所以上述方法来解决GET乱码似乎不成功,不知道我应该怎么做?
3、因为我修改 Connector 不能成功,所以想通过修改 filter 来解决问题,我想在其中加一个判断,如果是POST方法,就调用 setCharacterEncoding(encoding) 来处理,如果是GET方法,则通过类似 String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"GBK") 的方法来处理。可是我该如何将整个 QueryString 处理完的结果存回到 request 中以便继续传递呢?能否请各位高手给提供一个大概思路?
4、如果上面方法再不成功,那么似乎只能将处理编码的过程作成一个bean,然后每个jsp文件通过调用该bean来处理乱码,是这样吗?
以上是小弟的一个在Tomcat环境下处理中文乱码的思路,不知道各位都是用什么方法解决这类问题的呢?请帮忙提示一下。谢谢!