摘要:返回值已編碼的的副本。其中某些字符被替換成了十六進(jìn)制的轉(zhuǎn)義序列。
原文地址:http://www.maoyupeng.com/use-cookie-on-javascript.html
cookie存儲(chǔ)中文亂碼問(wèn)題使用js期間,如果存儲(chǔ)的數(shù)據(jù)存在中文,則可能會(huì)遇到兼容性的問(wèn)題.我先說(shuō)說(shuō)我遇到的問(wèn)題(不要心急,在后面會(huì)提供完整的代碼案例):
在安卓的手機(jī)上使用微信打開(kāi)我的測(cè)試網(wǎng)頁(yè),存儲(chǔ)中文沒(méi)有問(wèn)題,一切正常(不敢包所以安卓機(jī),反正我當(dāng)時(shí)用的的小米4是沒(méi)有遇到有中文亂碼的問(wèn)題)
在ios的手機(jī)上使用微信打開(kāi)我的測(cè)試網(wǎng)頁(yè),存儲(chǔ)中文會(huì)出現(xiàn)詭異的問(wèn)題,具體情況請(qǐng)看示例 ↓
安卓手機(jī)
var setAndroidValue = { cityId: 197, cityName: "廣州" } cookie.set("androidTestCookie",setAndroidValue,30); // 存儲(chǔ)成功后,獲取的值為,一切正常 console.log(JSON.stringify(cookie.get("androidTestCookie"))) //{cityId: 197,cityName: "廣州"}
ios手機(jī)
var setAndroidValue = { cityId: 197, cityName: "廣州" } cookie.set("androidTestCookie",setAndroidValue,30); // 存儲(chǔ)成功后,獲取的值缺少了一截,個(gè)人估計(jì)就是因?yàn)橛龅街形牧?亂碼,沒(méi)有存儲(chǔ)進(jìn)去 console.log(JSON.stringify(cookie.get("androidTestCookie"))) //{cityId: 197,cityName: "解決存儲(chǔ)cookie亂碼問(wèn)題
其實(shí)很簡(jiǎn)單,就是使用了escape()和unescape()函數(shù)
escape(string)
函數(shù)可對(duì)字符串進(jìn)行編碼,這樣就可以在所有的計(jì)算機(jī)上讀取該字符串。返回值:已編碼的 string 的副本。其中某些字符被替換成了十六進(jìn)制的轉(zhuǎn)義序列。
unescape(string)
跟escape()剛好相反,就是解碼的
var cookie = { set:function(key,val,time){//設(shè)置cookie方法 var date=new Date(); //獲取當(dāng)前時(shí)間 var expiresDays=time; //將date設(shè)置為n天以后的時(shí)間 date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化為cookie識(shí)別的時(shí)間 document.cookie=key + "=" + escape(val) +";expires="+date.toGMTString(); //設(shè)置cookie }, get:function(key){//獲取cookie方法 /*獲取cookie參數(shù)*/ var getCookie = document.cookie.replace(/[ ]/g,""); //獲取cookie,并且將獲得的cookie格式化,去掉空格字符 var arrCookie = getCookie.split(";") //將獲得的cookie以"分號(hào)"為標(biāo)識(shí) 將cookie保存到arrCookie的數(shù)組中 var tips; //聲明變量tips for(var i=0;i使用方法 cookie.set("key","value,中文也可以的",30) //30天后失效 cookie.get("key") // value,中文也可以的
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91661.html
這篇文章最初發(fā)表在我自己搭建的站點(diǎn)js-cookie庫(kù)源碼學(xué)習(xí) 背景 最近在做項(xiàng)目的時(shí)候,前端登錄功能要做一個(gè)記住密碼的功能。但開(kāi)發(fā)用的框架中沒(méi)有實(shí)現(xiàn)這個(gè)功能,所以我就想自己實(shí)現(xiàn)這個(gè)功能。實(shí)現(xiàn)起來(lái)其實(shí)很簡(jiǎn)單,就是每次用戶在登錄頁(yè)面點(diǎn)擊登錄時(shí),把用戶輸入的用戶名和密碼保存到cookie中就可以了,當(dāng)用戶再登錄時(shí),再?gòu)腸ookie中獲取用戶名和密碼填充到表單中就可以了。當(dāng)然,也可以選擇保存在local...
摘要:快速上手先說(shuō)區(qū)別數(shù)據(jù)大小不能超過(guò)。可以在后端設(shè)置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲(chǔ)在瀏覽器僅在瀏覽器為關(guān)閉的狀態(tài),關(guān)閉窗口后數(shù)據(jù)就會(huì)銷(xiāo)毀。默認(rèn)情況下,屬于當(dāng)前頁(yè)面。 cookie、Sessionstorage、Localstorage快速上手 先說(shuō)區(qū)別 cookie: 數(shù)據(jù)大小不能超過(guò)4KB。 不管是否有需求,cookie數(shù)據(jù)都會(huì)在HTTP請(qǐng)求中攜帶,在瀏覽器和服務(wù)器中來(lái)回傳遞,...
摘要:快速上手先說(shuō)區(qū)別數(shù)據(jù)大小不能超過(guò)??梢栽诤蠖嗽O(shè)置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲(chǔ)在瀏覽器僅在瀏覽器為關(guān)閉的狀態(tài),關(guān)閉窗口后數(shù)據(jù)就會(huì)銷(xiāo)毀。默認(rèn)情況下,屬于當(dāng)前頁(yè)面。 cookie、Sessionstorage、Localstorage快速上手 先說(shuō)區(qū)別 cookie: 數(shù)據(jù)大小不能超過(guò)4KB。 不管是否有需求,cookie數(shù)據(jù)都會(huì)在HTTP請(qǐng)求中攜帶,在瀏覽器和服務(wù)器中來(lái)回傳遞,...
閱讀 2517·2021-11-17 09:33
閱讀 814·2021-11-04 16:13
閱讀 1371·2021-10-14 09:50
閱讀 734·2019-08-30 15:53
閱讀 3712·2019-08-30 14:18
閱讀 3304·2019-08-30 14:14
閱讀 2149·2019-08-30 12:46
閱讀 3223·2019-08-26 14:05