日期:2014-05-18  浏览次数:20646 次

jsp传值乱码问题
我有两个jsp页面的传值,两个都是用gb2312 编码的,从一个传到另一个,第一个是:
href="read.jsp?filename=<%=java.net.URLEncoder.encode(sqlRst1.getString("fileurl"))%>"(在第一个页面打印出来的值是中文的)
传到另外一个这样的,
String strurl = new String(request.getParameter("filename").getBytes("gb2312")); 在控制台打印第一个文件名的时候,还是显示的中文,到另一个页面,显示的 strul1名字是乱码, 
 环境是在linux服务器下的tomcat容器,server.xml配置文件里是用的utf-8的. 怎么回事啊?? 试了好多种编码都不行!
 


------解决方案--------------------
[color=#FF0000][/color]你没都试吧. 呵.
你改成 new String(request.getParameter("filename").getBytes("iso8859-1")); 就可以正常显示中文了

是iso8859-1 , 别的不变.
------解决方案--------------------
你可以用filter 解决 拦截 request 和response 对应一种同意的编码
------解决方案--------------------
还有个地方需要设置编码,就是request.setCharacterEncoding("gb2312 ")。在输出页面,或在你的SERVLET JAVA程序里