tomcat 编码问题

在tomcat 4中,从客户端表单获取参数时(中文),使用request.setEncoding("gbk"); 就可以从网页正确获取中文数据,但是同样的程序在tomcat5(包括其他服务器)中就不能正确获取中文,请问如何在tomcat5和其他服务器中正确获取中文? 还有tomcat 4和tomcat 5的编码有什么区别?谢谢!

中文编码和Tomcat等服务器无关,统一你的应用系统编码为UTF-8,这是根本解决之道。

同样的代码,没做任何改变,在tomcat4下可以正确显示中文,在tomcat5下则乱码,请赐教

是按照统一UTF-8编码的方法

我的问题是:为什么同意的代码,在tomcat4 下可以正确处理中文,在tomcat5下不可以

感觉在tomcat 5里,request.setCharacterEncoding("UTF-8"); 这句根本没起作用,请教了

还是代码有问题,不妨贴出来看看....

代码巨简单,jsp的就不用说了,过滤器是这样
public class CharsetFilter implements Filter{
private FilterConfig config = null;
private String defaultEncode = "UTF-8";

public void init(FilterConfig config) throws ServletException {
this.config = config;
}

public void destroy() {
this.config = null;
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("into filter");
try {

request.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// response.setCharacterEncoding("gbk");
chain.doFilter(request,response);
}
}
jsp 页面都是UTF-8编码的,eclipse的项目编码也是UTF-8 的,谢谢

每个服务器的编码不同
当然会不一样
修改一下过滤器的配置就好了

告诉你一个检验的办法:将前台输入的汉字在后台打印出来,如果能够打印出汉字,而不是乱码,说明前台录入编码设置正确;如果显示出来是乱码,那么是显示页面UTF-8没有设置。

如果后来经过数据库保存,再取出来是乱码,就表明数据库连接,没有设置乱码。

我说的"将前台输入的汉字在后台打印出来"
是指用System.out.println或log4j在jboss的日志文件里打印出来.

我一直是这样做的,在Action 中打印出取得的值,我又试了一下,除了tomcat5 和 jboss4,其他服务器都可以正确显示

知道是怎么回事吗?

把你哪个巨简单的jsp也弄出来吧,呵呵。另外提示你:
页面跳转时注意
不要onclick=goPerson(){
url = "actions/queryAction.do?modelFlag=per_all_people
&¶meterValue=<%=personName%>";
location.href=url;
}

这种形式,用document.form.submit();来提交传递。