日期:2014-05-17  浏览次数:20828 次

关于HttpServletRequest的setCharacterEncoding与getParameter
最近发现一个问题,就是关于这个两个方法的,

如果先调用了getParameter方法,再调用setCharacterEncoding方法就不起作用了.

实验代码:

String name = arg0.getParameter("name");
// System.out.println("name----------------------------------"+name);
// arg0.setCharacterEncoding("gbk");
// name = arg0.getParameter("name");
// System.out.println("name----------------------------------"+name);
arg0.setCharacterEncoding("utf-8");
String name = arg0.getParameter("name");
System.out.println("name----------------------------------"+name);
arg2.doFilter(arg0, arg1);

这段代码在filter中,有兴趣的朋友可以自己实验一下.
jsp页面用的是post方法提交表单.
------解决方案--------------------
soga ,回去试试
------解决方案--------------------
本来就是要先调用setCharacterEncoding之后在接收参数啊,你要先设定好request的编码然后接收才能达到效果啊,你先接收了在设置接收的编码当然没用了。
因为request.getParameter默认使用的是"8859_1"之类的,不是中文编码的,,,