建议还是别用get方法传递中文参数,会出现很多问题,解决方法可以用encoding的加密解密进行传递,但这种方法比较耗费资源,是jdk1.4所不提倡的,所以说,还是用post方法吧

解决方案 »

  1.   

    传递
    java.net.Encoder.encode();
    接收
    new String(request.getParameter("").getBytes("ISO8859_1"),"gb2312");
      

  2.   

    用post方式,JSP页面需要保存为UTF-8
    取的时候使用request.setCharacterEncoding("UTF-8");就ok了。
      

  3.   


     beyond_xiruo(CorruptionException)大佬,现在的问题是,这是servlet,在传递参数时,是这样传递的:
    out.println("<go href=\"/servlet/Register?id=$(id)&amp;pass=$(pass) + "\" />");
    我无法得到$(id)的值,所以要用java.net.URLEncoder.encode(String s, String encoding);时,怎么得到s的值
      

  4.   

    要强调的是,现在用的是servlet,题目已经说明了,不是JSP页面。
      

  5.   

    在第一个页面的这一个语句里: 
    out.println("<go href=\"/servlet/Register?id=$(id)&amp;pass=$(pass) + "\" />");
    $(id)值已经是不正确的了:中文每个字应该是三个字节,但这里只得每个字一个字节。
    关键是这里了。
      

  6.   

    问题终于解决了。
    WAP中中文参数传递解决方法:
    发送端:
    out.println("<input name=\"id\" value=\"中文\" />");out.println("<go href=\"next?id=$(id:u)\" />")       //加个:u是关键接收端:
    加一句:request.setCharacterEncoding("UTF-8");
    然后,String id = request.getParameter("id");
    OK!