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条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 session失效问题
      • ¥15 GMS地下水数值模拟无法打开
      • ¥15 树型结构的数据怎么匹配分支
      • ¥15 stm32F4用.引不出来结构体成员怎么解决
      • ¥15 .exe文件打不开怎么解决?
      • ¥30 Syntax Error: TypeError: this.getOptions is not a function的问题
      • ¥15 eclipse Android环境搭建
      • ¥15 unity中脚本之间的继承有什么作用
      • ¥15 C语言内存对齐代码不太理解
      • ¥15 uniapp中的uni-file-picker组件多图上传,删除,显示。以及C#.Net后端处理问题