b.jsp
   <%
 msg=new String(msg.getBytes("ISO-8859-1"),"gb2312");    
String msg=request.getparameter("msg"); //<==error
   %>
祝你成功!

解决方案 »

  1.   

    <%
         String msg=request.getparameter("msg"); 
         msg=new String(msg.getBytes("ISO-8859-1"),"gb2312");    
       %>
      

  2.   

    用用这个,马上可以解决。
    <%@ page contentType= "text/html;charset=gb2312" %>
    <%  request.setCharacterEncoding("gb2312");%>
      

  3.   

    在b.jsp里使用
         String msg=request.getparameter("msg"); 
         msg=new String(msg.getBytes("ISO-8859-1"),"gb2312"); 
    后可以正常显示了,比如我在ie地址栏里直接输入“b.jsp?msg=用户名错误”就能用。 现在的问题是在a.jsp这里就出现乱码了,因为执行a.jsp后在ie地址栏里看到的是b.jsp?msg=??
    所以即使b.jsp里能显示中文,但由于链接里本身给的就是乱码,所以b.jsp还是无法显示正确的中文。我觉得问题可能出在response.sendredirect上,不知该如何解决?请大家再帮忙看看。
      

  4.   

    用这个应该可以:
     response.redirect("b.jsp?msg="+java.net.URLEncoder.encode("用户名错","UTF-8"));