【问题标题】:Garbled characters in cookiecookie 中出现乱码
【发布时间】:2009-10-27 11:00:36
【问题描述】:

我在cookie中存了汉字,但是cookie值变成了乱码。我该怎么办?

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 1000 * 60 * 60 * 24));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

createCookie("city", decodeURI('%e6%b8%a9%e5%b7%9e%e5%b8%82'));
alert(decodeURI('%e6%b8%a9%e5%b7%9e%e5%b8%82')); // The Chinese characters are correct
alert(document.cookie); //The Chinese characters are corrupted

【问题讨论】:

    标签: javascript encoding cookies


    【解决方案1】:

    试试这个,对我有用。

    createCookie("city", '%e6%b8%a9%e5%b7%9e%e5%b8%82'); //do not decode chinese characters
    alert(decodeURI('%e6%b8%a9%e5%b7%9e%e5%b8%82')); 
    alert(decodeURI(document.cookie)); 
    

    【讨论】:

      【解决方案2】:

      在设置 cookie 之前,您只需要对值(如果它也可以包含中文字符,也可以是名称)进行编码(我不确定 decodeURI 使用的是什么编码,但大概是它的任何编码,它有一个编码动词来匹配解码动词,y?-)

      【讨论】:

        猜你喜欢
        • 2020-10-05
        • 2012-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-19
        • 2013-05-28
        • 2015-04-29
        • 1970-01-01
        相关资源
        最近更新 更多