html中读取asp.net向Cookie中写入的中文内容

来源:互联网 发布:淘宝支持分期付款么 编辑:程序博客网 时间:2024/05/16 09:57

这几天研究一个B/S架构的系统,在页面间进行参数传递时需要读写Cookie,碰到问题:

需在登录界面记录登录者的信息(用户名称)在cookie里,由其它页面读取,登录界面是.aspx文件,系统框架中有一个.html页面,是用javascript写的树形菜单,在树形菜单里要显示用户名称信息,

1、javascript可以读取的函数有:

1.1、function readCookie(name){
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
        }
        return null;
}

1.2、function readCookie(name){
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
        }
        return null;
}

2、在aspx文件中写cookie的代码:

在把中文值写入cookie之前需先编码,

Response.Cookies["user_name"].Value =System.Web.HttpUtility.UrlEncode( uname);

3、在javascript中需用函数1.2才能正确读出,否则中文始终显示为乱码。(研究了两天,请教了N多高手,调试了N+1种方法才得出来的不正确结果哦 :-))

4、在.aspx文件中读取cookie的代码:

Label1.Text = System.Web.HttpUtility.UrlDecode(Request.Cookies["user_name"].Value);

 
原创粉丝点击