tomcat 编码问题

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

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

leeway218
2005-07-01 12:00
同样的代码,没做任何改变,在tomcat4下可以正确显示中文,在tomcat5下则乱码,请赐教

leeway218
2005-07-01 12:11
是按照统一UTF-8编码的方法

banq
2005-07-01 13:45
http://www.jdon.com/idea/chinesejava.htm

你虽然统一成UTF-8,但是注意是每个环节,结扎!

leeway218
2005-07-01 14:02
我的问题是:为什么同意的代码,在tomcat4 下可以正确处理中文,在tomcat5下不可以

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

snowsf
2005-07-01 16:15
还是代码有问题,不妨贴出来看看....

leeway218
2005-07-01 16:18
代码巨简单,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 的,谢谢

tjyzwz
2005-07-01 17:28
每个服务器的编码不同

当然会不一样

修改一下过滤器的配置就好了

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

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

banq
2005-07-01 17:48
我说的"将前台输入的汉字在后台打印出来"

是指用System.out.println或log4j在jboss的日志文件里打印出来.

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

leeway218
2005-07-06 11:00
知道是怎么回事吗?

鲁中正气
2005-07-06 14:55
把你哪个巨简单的jsp也弄出来吧,呵呵。另外提示你:

页面跳转时注意

不要onclick=goPerson(){

url = "actions/queryAction.do?modelFlag=per_all_people

&¶meterValue=<%=personName%>";

location.href=url;

}

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

猜你喜欢
2Go 1 2 下一页