zoukankan      html  css  js  c++  java
  • Control character in cookie value, consider BASE64 encoding your value-Cookie保存中文出错[转]

    项目当中用到cookie保存中文,但是会报如下错误:

    Control character in cookie value, consider BASE64 encoding your value

    大概意思是保存到cookie当中的值存在控制字符,无法保存。但实际上数据是不存在这种问题的。再看后面的那句话,好像是将要保存的值进行了base64编码,可能是因为中文在编码时出现乱码导致一些控制字符的出现。

    解决方案:将要保存的值进行URLEncoder.encode(value,"utf-8")编码。

    在提取时,同样进行解码:

    Java代码 复制代码
    1. /**  
    2.     * 添加一个cookie值  
    3.     * @param name 名称  
    4.     * @param value 值  
    5.     * @param time  cookie的有效期  
    6.     * @param response 保存cookie的对象  
    7.     */  
    8.     public static void setCookie(String name, String value, Integer time,HttpServletResponse response) {   
    9.        try {   
    10.            //关键点   
    11.            value = URLEncoder.encode(value,"UTF-8");  
    12.   
    13.        } catch (UnsupportedEncodingException e) { }   
    14.        Cookie cookie = new Cookie(name, value);   
    15.        cookie.setPath("/");   
    16.        cookie.setMaxAge(time);   
    17.        response.addCookie(cookie);   
    18.    }   
    19.   
    20.    /**  
    21.     * 根据name值,从cookie当中取值  
    22.     *  
    23.     * @param name    要获取的name  
    24.     * @param request cookie存在的对象  
    25.     * @return 与name对应的cookie值  
    26.     */  
    27.    public static String getCookie(String name, HttpServletRequest request) {   
    28.        Cookie[] cs = request.getCookies();   
    29.        String value = "";   
    30.        if (cs != null) {   
    31.            for (Cookie c : cs) {   
    32.                if (name.equals(c.getName())) {   
    33.                    try {   
    34.   
    35.                   //关键点     
    36.                     value = URLDecoder.decode(c.getValue(),"UTF-8");  
    37.   
    38.                    } catch (UnsupportedEncodingException e) {   
    39.                    }   
    40.                    return value;   
    41.                }   
    42.            }   
    43.        }   
    44.        return value;   
    45.   
    46.    }  

    转自:http://amcucn.javaeye.com/blog/403857

  • 相关阅读:
    USACO 3.3 A Game
    USACO 3.3 Camelot
    USACO 3.3 Shopping Offers
    USACO 3.3 TEXT Eulerian Tour中的Cows on Parade一点理解
    USACO 3.3 Riding the Fences
    USACO 3.2 Magic Squares
    USACO 3.2 Stringsobits
    USACO 3.2 Factorials
    USACO 3.2 Contact
    USACO 3.1 Humble Numbers
  • 原文地址:https://www.cnblogs.com/volare/p/3938049.html
Copyright © 2011-2022 走看看