67,512
社区成员
发帖
与我相关
我的任务
分享
System.out.println("进入MyServlet......");
String aa="aaa号";
String aa2="aaa2号";
resp.sendRedirect("/ServletTest/bbb?aa="+aa+"&aa2="+aa2+"&username2=张三LISI");
resp.setHeader("content-type", "text/html;charset=utf-8");
resp.setCharacterEncoding("utf-8");
req.setCharacterEncoding("utf-8");
System.out.println("进入OtherServlet......");
System.out.println("转换编码前......");
String aa=req.getParameter("aa");
String username2=req.getParameter("username2");
String aa2=req.getParameter("aa2");
System.out.println("aa2="+aa2);
System.out.println("username2="+username2);
System.out.println("aa="+aa);
System.out.println("转换编码后......");
String s1=new String(req.getParameter("username2").getBytes("ISO-8859-1"),"UTF-8");
String s2=new String(req.getParameter("aa").getBytes("ISO-8859-1"),"GB2312");
String s3=new String(req.getParameter("aa2").getBytes("ISO-8859-1"),"UTF-8");
System.out.println("username2="+s1);//还是乱码
System.out.println("aa="+s2);//还是乱码
System.out.println("aa2"+s3);//还是乱码
req.setAttribute("aa", aa);
req.setAttribute("aa2", aa2);
req.setAttribute("username2", "你好撒飒飒");
req.getRequestDispatcher("/index.jsp").forward(req, resp);
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
String ss1=java.net.URLDecoder.decode(req.getParameter("username2"), "UTF-8");
System.out.println("ss1="+ss1);//结果中文还是乱码,中文全是问号。。。。。。
String ss1=java.net.URLDecoder.decode(req.getParameter("username2"), "UTF-8");
System.out.println("ss1="+ss1);//结果中文还是乱码,中文全是问号。。。。。。
[/quote]
你在什么系统下打印的?支持中文吗
把username2的值也打印出来,乱码的话 转成16进制打印出来
sendRedirect 时候,你主动urlencode 中文字符串
[/quote]
解决了,非常感谢。原来要在sendRedirect 之前encode......之前一直在下一个Servlet中encode和decode。。。。。。。
String ss1=java.net.URLDecoder.decode(req.getParameter("username2"), "UTF-8");
System.out.println("ss1="+ss1);//结果中文还是乱码,中文全是问号。。。。。。
[/quote]
你在什么系统下打印的?支持中文吗
把username2的值也打印出来,乱码的话 转成16进制打印出来
sendRedirect 时候,你主动urlencode 中文字符串