iteye_13541
2014-05-20 00:21
浏览 199
已采纳

过滤器设置编码,中文到达Action类中还是乱码

各位好,我试着用Filter来做统一编码,doFilter方法如下:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,ServletException {
System.out.println("---------------------------doFilter");
req.setCharacterEncoding("UTF-8");
/*
if (ignore || req.getCharacterEncoding()==null) {
String encoding = selectEncoding(req);
if (encoding != null) req.setCharacterEncoding(encoding);
else req.setCharacterEncoding(this.encoding);
}
*/
chain.doFilter(req,res);
}

在web.xml里面的配置如下:

encoding
org.simon.filter.SetCharacterEncodingFilter

encoding
utf-8



encoding
/*

JSP页面上的主要代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

账号:
密码:

但是提交后,在Struts 2的Action类中接收到的中文还是乱码,但是把JSP中第一行中的pageEncoding="GB2312" 改成 pageEncoding="UTF-8",就没问题了。

我就是觉得很奇怪,过滤器不是在访问这个页面的时候就已经把编码设置成了UTF-8了吗?为什么还是会出现这种问题,中间做了什么呢?麻烦大家帮忙解决一下,谢谢了~~

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

6条回答 默认 最新

相关推荐 更多相似问题