代码改变世界

C#存Cookie,JS取出为乱码

2011-04-27 20:14  Dreamer57  阅读(566)  评论(0)    收藏  举报
// 存的时候用Server.UrlEncode("中文")加密下
HttpCookie hc2 = new HttpCookie("LoginUserName", Server.UrlEncode(uc.UserName));
Response.SetCookie(hc1);

JS取出时在解密就不会有乱码了

decodeURIComponent("cookie");
var cookie =
{
cookies:
function (key, value, day, path, domain) {

try {
if (arguments.length >= 1) {
var curCookie = document.cookie;
var now = new Date();
now.setDate(now.getDate()
+ day);
if (arguments.length == 1) {
            // 这里取出时解密
decodeURIComponent("cookie");
return decodeURIComponent(curCookie.match(new RegExp('(?=' + key + '=)[^;]*'))).split('=')[1];
}
else if (arguments.length == 2) {
curCookie
= key + '=' + value;
return;
}
else if (arguments.length == 3) {
now.setDate(now.getDate()
+ day);
curCookie
= key + '=' + encodeURIComponent(value) + ';expire=' + now.toGMTString();
return;
}
else if (arguments.length == 4) {
curCookie
= key + '=' + encodeURIComponent(value) + ';expire=' + now.toGMTString() + ";path=" + path;
return;
}
else if (arguments.length == 5) {
curCookie
= key + '=' + encodeURIComponent(value) + ';expire=' + now.toGMTString() + ";path=" + path + ";domain=" + domain;
return;
}
}
alert(
"别乱来!");
}
catch (e) {
alert(e.toString());
return;
}
},
remove:
function (key) { this.cookies(key, 'null', -1) }
};