String name=request.getParameter("name");
      String birthday=request.getParameter("birthday");
      String mail=request.getParameter("mail");
      Cookie myCook=new Cookie("mrCookInfo",name+"#"+birthday+"#"+mail);
      myCook.setMaxAge(60*60*24*365);
      response.addCookie(myCook);
上面的这段代码没什么错,可以正常运行,但是不能传递中文名字,我想让name可以传递中文名字,所以进行了一点改动 改动是:
String name=new String(request.getParameter("name").getBytes("iso-8859-1"),"gbk");
      String birthday=request.getParameter("birthday");
      String mail=request.getParameter("mail");
      Cookie myCook=new Cookie("mrCookInfo",name+"#"+birthday+"#"+mail);
      myCook.setMaxAge(60*60*24*365);
      response.addCookie(myCook);结果,出错了,好像是Cookie的问题,提示是 response.addCookie(myCook);有问题,我初学者,不知道怎么改,请求指点

解决方案 »

  1.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.IllegalArgumentException: Control character in cookie value, consider BASE64 encoding your value
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause java.lang.IllegalArgumentException: Control character in cookie value, consider BASE64 encoding your value
    org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:365)
    org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:358)
    org.apache.tomcat.util.http.ServerCookie.appendCookieValue(ServerCookie.java:268)
    org.apache.catalina.connector.Response.addCookieInternal(Response.java:976)
    org.apache.catalina.connector.Response.addCookie(Response.java:945)
    org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:343)
    org.apache.jsp.show1_jsp._jspService(show1_jsp.java:70)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
    --------------------------------------------------------------------------------
      

  2.   

    Cookie是不能直接传递中文的,如果非要传递中文,你需要先用java.net.URLEncoder.encode("参数", "UTF-8")把中文编码为字节再传递