js运用cookie

原文地点:http://www.maoyupeng.com/use-cookie-on-javascript.html

cookie存储中文乱码题目

运用js时期,假如存储的数据存在中文,则可能会碰到兼容性的题目.我先说说我碰到的题目(不要心急,在后面会供应完全的代码案例):

  1. 安卓的手机上运用微信翻开我的测试网页,存储中文没有题目,一切正常(不敢包所以安卓机,横竖我当时用的的小米4是没有碰到有中文乱码的题目)

  2. ios的手机上运用微信翻开我的测试网页,存储中文会涌现诡异的题目,具体情况请看示例 ↓

安卓手机

var setAndroidValue = {
    cityId: 197,
    cityName: '广州'
}
cookie.set('androidTestCookie',setAndroidValue,30);

// 存储胜利后,猎取的值为,一切正常
console.log(JSON.stringify(cookie.get('androidTestCookie')))  //{cityId: 197,cityName: '广州'}

ios手机

var setAndroidValue = {
    cityId: 197,
    cityName: '广州'
}
cookie.set('androidTestCookie',setAndroidValue,30);

// 存储胜利后,猎取的值缺少了一截,个人预计就是由于碰到中文了,乱码,没有存储进去
console.log(JSON.stringify(cookie.get('androidTestCookie')))  //{cityId: 197,cityName: '

处理存储cookie乱码题目

实在很简单,就是运用了escape()unescape()函数

escape(string)
函数可对字符串举行编码,如许就能够在所有的盘算机上读取该字符串。返回值:已编码的 string 的副本。个中某些字符被替代成了十六进制的转义序列。

unescape(string)
escape()恰好相反,就是解码的

完全的示例代码

var cookie = {
    set:function(key,val,time){//设置cookie要领
        var date=new Date(); //猎取当前时候
        var expiresDays=time;  //将date设置为n天今后的时候
        date.setTime(date.getTime()+expiresDays*24*3600*1000); //花样化为cookie辨认的时候
        document.cookie=key + "=" + escape(val) +";expires="+date.toGMTString();  //设置cookie
    },
    get:function(key){//猎取cookie要领
        /*猎取cookie参数*/
        var getCookie = document.cookie.replace(/[ ]/g,"");  //猎取cookie,而且将取得的cookie花样化,去掉空格字符
        var arrCookie = getCookie.split(";")  //将取得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
        var tips;  //声明变量tips
        for(var i=0;i<arrCookie.length;i++){   //运用for轮回查找cookie中的tips变量
            var arr=arrCookie[i].split("=");   //将单条cookie用"等号"为标识,将单条cookie保存为arr数组
            if(key==arr[0]){  //婚配变量称号,个中arr[0]是指的cookie称号,假如该条变量为tips则实行推断语句中的赋值操纵
                tips=arr[1];   //将cookie的值赋给变量tips
                break;   //停止for轮回遍历
            }
        }
        return unescape(tips);
    }
}

运用要领

cookie.set('key','value,中文也能够的',30)  //30天后失效

cookie.get('key')   // value,中文也能够的
    原文作者:毛宇鹏
    原文地址: https://segmentfault.com/a/1190000007785784
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞