页面一:
<a href="MyJsp1.jsp?id=1&username=周杰伦&password=123456">传递访问参数</a>
页面二:
<%
String id = request.getParameter("id");
String name = new String(request.getParameter("username").getBytes("ISO-8859-1"),"utf-8");
String password = request.getParameter("password");
%>
id:<%=id%><br>
用户名:<%=name%><br>
密码:<%=password%>
————————————————
为什么在IE浏览器中:
id:1
用户名:周杰□?password=123456
密码:null
而在CHROME浏览器中正常显示,如下?
id:1
用户名:周杰伦
密码:123456
为什么会出现这样的情况?想获得详细解释,并且如果把username改成四字符,如“周杰伦人”,则在IE中也可正常传递,求解~
用过滤器,是最成熟最好的方式了,使用了过滤器之后,就不用在每张JSP、每个servlet、到处做字符编码处理了嘛、一劳永逸嘛。 比如webwork、struts、Spring等框架都提供了专门针对字串编码的过滤器,非常优秀,还是可插拔式的,你可以单独引用,好小,就一个类文件而已。开源社区也有很多优秀的编码过滤器。或者,你可以自己写一个,并不复杂嘛、还可以锻炼一下。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-05-26
参数要转码把,我传递的时候也出现了这个问题,后来我用一个encodeURI转了码就OK了,具体怎么用网上多的是
第2个回答 2011-05-26
佩服你,连规律都找出来
在web.xml中配个过滤器
在web.xml中配个过滤器
第3个回答 2011-05-26
这个问题我以前也遇到过,用iso-8859-1转换的时候好像会有乱码,有意思的是如果中文为偶数的时候能转换正常,为奇数的时候则转换不正常。后来我好像是用spring框架的org.springframework.web.filter.CharacterEncodingFilter这个过滤器解决的,您可以用这个试试。
第4个回答 2011-05-26
response.setCharacterEncoding(request.getCharacterEncoding());