쿠키에 중국어를 저장할 때 가끔 중국어 깨짐 문제가 발생할 수 있습니다. 예를 들어, IOS 시스템에서 접속할 때 중국어 깨짐으로 인해 데이터가 쿠키에 성공적으로 저장되지 않을 수 있습니다. 문제는 2개의 함수를 사용하는 것입니다:
escape(string): 문자열을 인코딩합니다.
unescape(string): 문자열을 디코딩합니다.
코드 예시는 다음과 같습니다.
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); } }
사용 방법은 다음과 같습니다.
Js 코드
cookie.set('key','value,中文也可以的',30) //30天后失效 cookie.get('key') // value,中文也可以的