js读取asp.net cookie的问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:05:31
我用的方法如下
.net:
System.Web.HttpCookie cUName = new System.Web.HttpCookie("userName", user.username);

System.Web.HttpContext.Current.Response.Cookies.Add(cUName);
System.Web.HttpContext.Current.Response.Cookies["userName"].Expires = System.DateTime.Now.AddMonths(1);

js:
var arrCookie=strCookie.split("; ");
var userId='aa';
//遍历cookie数组,处理每个cookie对
for(var i=0;i<arrCookie.length;i++){
var arr=arrCookie[i].split("=");
//找到名称为userId的cookie,并返回它的值
if("userName"==arr[0]){
userId=arr[1];
break;
}
}

这样确实可以得到值 但确实乱码 关键何在?请高手指点
仍然是乱码 我是将UrlEncode编码后的值存入cookie的
然后js里面用unescape 反解码 是否还有哪不对呢?
===================================
- -! 大哥 这个Server.UrlEncode是什么东西?还有补充一点 乱码是乱在了中文上 英文没事

在.net里面,写到客户端的时候先把Cookies的值 UrlEncode一下
在js里面读出来的时候,先用 unescape 反解码一下

---------.NET
System.Web.HttpCookie cUName = new System.Web.HttpCookie("userName", Server.UrlEncode(user.username));
---------JS
userId=unescape(arr[1]);

-----------
Server是个服务器对象。
如果你不在Page里面使用的话,可以用
System.Web.HttpUnility.UrlEncode 来代替

至于那个英文的,因为英文本身就不存在编码问题。

关于编码和解码的问题,不妨多尝试尝试。必要时手动看一下Cookies里面的内容判断是哪个阶段出的问题。