摘要:返回值已編碼的的副本。其中某些字符被替換成了十六進制的轉(zhuǎn)義序列。
原文地址:http://www.maoyupeng.com/use-cookie-on-javascript.html
cookie存儲中文亂碼問題使用js期間,如果存儲的數(shù)據(jù)存在中文,則可能會遇到兼容性的問題.我先說說我遇到的問題(不要心急,在后面會提供完整的代碼案例):
在安卓的手機上使用微信打開我的測試網(wǎng)頁,存儲中文沒有問題,一切正常(不敢包所以安卓機,反正我當時用的的小米4是沒有遇到有中文亂碼的問題)
在ios的手機上使用微信打開我的測試網(wǎng)頁,存儲中文會出現(xiàn)詭異的問題,具體情況請看示例 ↓
安卓手機
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()函數(shù)
escape(string)
函數(shù)可對字符串進行編碼,這樣就可以在所有的計算機上讀取該字符串。返回值:已編碼的 string 的副本。其中某些字符被替換成了十六進制的轉(zhuǎn)義序列。
unescape(string)
跟escape()剛好相反,就是解碼的
var cookie = { set:function(key,val,time){//設(shè)置cookie方法 var date=new Date(); //獲取當前時間 var expiresDays=time; //將date設(shè)置為n天以后的時間 date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化為cookie識別的時間 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以"分號"為標識 將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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91661.html
這篇文章最初發(fā)表在我自己搭建的站點js-cookie庫源碼學(xué)習(xí) 背景 最近在做項目的時候,前端登錄功能要做一個記住密碼的功能。但開發(fā)用的框架中沒有實現(xiàn)這個功能,所以我就想自己實現(xiàn)這個功能。實現(xiàn)起來其實很簡單,就是每次用戶在登錄頁面點擊登錄時,把用戶輸入的用戶名和密碼保存到cookie中就可以了,當用戶再登錄時,再從cookie中獲取用戶名和密碼填充到表單中就可以了。當然,也可以選擇保存在local...
摘要:快速上手先說區(qū)別數(shù)據(jù)大小不能超過。可以在后端設(shè)置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲在瀏覽器僅在瀏覽器為關(guān)閉的狀態(tài),關(guān)閉窗口后數(shù)據(jù)就會銷毀。默認情況下,屬于當前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區(qū)別 cookie: 數(shù)據(jù)大小不能超過4KB。 不管是否有需求,cookie數(shù)據(jù)都會在HTTP請求中攜帶,在瀏覽器和服務(wù)器中來回傳遞,...
摘要:快速上手先說區(qū)別數(shù)據(jù)大小不能超過。可以在后端設(shè)置修改,數(shù)據(jù)僅在本地瀏覽器保存。數(shù)據(jù)存儲在瀏覽器僅在瀏覽器為關(guān)閉的狀態(tài),關(guān)閉窗口后數(shù)據(jù)就會銷毀。默認情況下,屬于當前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區(qū)別 cookie: 數(shù)據(jù)大小不能超過4KB。 不管是否有需求,cookie數(shù)據(jù)都會在HTTP請求中攜帶,在瀏覽器和服務(wù)器中來回傳遞,...
閱讀 2478·2021-11-17 09:33
閱讀 765·2021-11-04 16:13
閱讀 1336·2021-10-14 09:50
閱讀 702·2019-08-30 15:53
閱讀 3668·2019-08-30 14:18
閱讀 3273·2019-08-30 14:14
閱讀 2102·2019-08-30 12:46
閱讀 3187·2019-08-26 14:05