今天在项目中,发现在response.sendRedirect(url);
如果URL中包含了中文,中文都会变成乱码。
解决方法:首先将你要传输的url以GBK的形式打散,然后以ISO8859_1的形式传输。
String url = "admin/systemmanage/dicbase/DicBaseLocation.jsp?submitButtonFlag="+submitButtonFlag+"&procMsg="+procMsg;
url=new String(url.getBytes("GBK"),"ISO8859_1");
response.sendRedirect(url);
而DicBaseLocation.jsp页面的接收方式正好与传输方式相反,以ISO8859_1打散,然后解析成GBK,例如:
String procMsg=new String(request.getParameter("procMsg").getBytes("ISO8859_1"),"GBK");
就正常了。