明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

客戶端Cookie中文編程(2)

[摘要]例如你要寫入的Cookie內(nèi)容是"一頂abc",經(jīng)過CodeCookie變?yōu)?quot;99a98a97a-31029a26432a"(基于安全考慮,將 字符串反轉(zhuǎn)),再經(jīng)過escape編碼后變?yōu)?quot;99a98a97a%2D31029a26432a"...

例如你要寫入的Cookie內(nèi)容是"一頂abc",經(jīng)過CodeCookie變?yōu)?99a98a97a-31029a26432a"(基于安全考慮,將
字符串反轉(zhuǎn)),再經(jīng)過escape編碼后變?yōu)?99a98a97a%2D31029a26432a"(escape編碼將除字母和數(shù)字以外的字符轉(zhuǎn)換為十
六進制%XX的形式),注意分隔符不能選%,D和數(shù)字。當然,如果有類似密碼的重要信息,還需要在加密上再強化一下。因
為寫入Cookie的一般都是短信息,編碼后增加的一些字節(jié)可忽略不計。下面的JavaScript讀寫Cookie函數(shù)中就加入了以上
的中文支持。

function SetCookie(name,value,expires)
{
var exp=new Date();
exp.setTime(exp.getTime()+expires*60*1000);
document.cookie=name+"="+escape(CodeCookie(value))+" ; expires="+exp.toGMTString()+" ; path=/";
}

function GetCookie (name)
{
var strArg=name+"=";
var nArgLen=strArg.length;
var nCookieLen=document.cookie.length;
var nEnd;
var i=0;
var j;

while (i<nCookieLen)
{
j=i+nArgLen;
if (document.cookie.substring(i,j)==strArg)
{
nEnd=document.cookie.indexOf (";",j);
if (nEnd==-1) nEnd=document.cookie.length;
return DecodeCookie(unescape(document.cookie.substring(j,nEnd)));
}
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return null;
}

如果用CGI程序?qū)懭胫形腃ookie,客戶端讀取。如在ASP里,可以先使用前述的編碼函數(shù)后,再用response寫入,例
如:response.cookies("Name")=CodeCookie("張三")至此,中文Cookie的問題基本解決。若有相關(guān)問題,請到



相關(guān)文章