摘要:返回值已編碼的的副本。其中某些字符被替換成了十六進制的轉義序列。
原文地址:http://www.maoyupeng.com/use-cookie-on-javascript.html
cookie存儲中文亂碼問題使用js期間,如果存儲的數據存在中文,則可能會遇到兼容性的問題.我先說說我遇到的問題(不要心急,在后面會提供完整的代碼案例):
在安卓的手機上使用微信打開我的測試網頁,存儲中文沒有問題,一切正常(不敢包所以安卓機,反正我當時用的的小米4是沒有遇到有中文亂碼的問題)
在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使用方法 cookie.set("key","value,中文也可以的",30) //30天后失效 cookie.get("key") // value,中文也可以的
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91661.html
這篇文章最初發表在我自己搭建的站點js-cookie庫源碼學習 背景 最近在做項目的時候,前端登錄功能要做一個記住密碼的功能。但開發用的框架中沒有實現這個功能,所以我就想自己實現這個功能。實現起來其實很簡單,就是每次用戶在登錄頁面點擊登錄時,把用戶輸入的用戶名和密碼保存到cookie中就可以了,當用戶再登錄時,再從cookie中獲取用戶名和密碼填充到表單中就可以了。當然,也可以選擇保存在local...
摘要:快速上手先說區別數據大小不能超過??梢栽诤蠖嗽O置修改,數據僅在本地瀏覽器保存。數據存儲在瀏覽器僅在瀏覽器為關閉的狀態,關閉窗口后數據就會銷毀。默認情況下,屬于當前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區別 cookie: 數據大小不能超過4KB。 不管是否有需求,cookie數據都會在HTTP請求中攜帶,在瀏覽器和服務器中來回傳遞,...
摘要:快速上手先說區別數據大小不能超過??梢栽诤蠖嗽O置修改,數據僅在本地瀏覽器保存。數據存儲在瀏覽器僅在瀏覽器為關閉的狀態,關閉窗口后數據就會銷毀。默認情況下,屬于當前頁面。 cookie、Sessionstorage、Localstorage快速上手 先說區別 cookie: 數據大小不能超過4KB。 不管是否有需求,cookie數據都會在HTTP請求中攜帶,在瀏覽器和服務器中來回傳遞,...
閱讀 2471·2021-11-17 09:33
閱讀 758·2021-11-04 16:13
閱讀 1329·2021-10-14 09:50
閱讀 692·2019-08-30 15:53
閱讀 3657·2019-08-30 14:18
閱讀 3268·2019-08-30 14:14
閱讀 2093·2019-08-30 12:46
閱讀 3178·2019-08-26 14:05