存进去的语句是
Cookie chineseCookie = new Cookie("chineseCookie", URLEncoder.encode("中文", "UTF-8"));
chineseCookie.setMaxAge(36000);
response.setCharacterEncoding("UTF-8");
response.addCookie(chineseCookie);
读Cookie的语句是
String temp = new String(cookies[i].getValue().getBytes("ISO-8859-1"));

解决方案 »

  1.   

    不好意思,纠正错误
    读cookie的语句是
    String temp = new String(cookies[i].getValue().getBytes("UTF-8"));但读出来的是:%E4%B8%AD%E6%96%87,和写在cookie中的是一模一样的字串
      

  2.   

    谢谢大胃,其实昨天我就在URLEncoder类中找decode方法,因为我觉得既然放进去的时候转了编码,而且好象是每个编码之间都用%作为分隔符,那就应该有解码的函数,可就是没想到这个函数会在另一个类中,都是对J2EE的类库不熟悉所至。
    现将完整的代码列出,也好给碰到类似问题的朋友参考参考:
    写Cookie:
        Cookie chineseCookie = new Cookie("chineseCookie", URLEncoder.encode("中文", "UTF-8"));
        chineseCookie.setMaxAge(36000);
        response.setCharacterEncoding("UTF-8");
        response.addCookie(chineseCookie);读Cookie:
        Cookie[] cookies = request.getCookies();
        for (int i = 0; i < cookies.length; i++) {
            if ("chineseCookie".equals(cookies[i].getName())) {
                String temp = cookies[i].getValue();
                temp = URLDecoder.decode(temp, "UTF-8");
                System.out.println("chineseCookie : " + temp);    //测试打印语句
            }
        }