我写了一个简单的js存cookies,需要在服务器取cookies的值
js源码为:
<script language="JavaScript">
    function setCookie(name,value)
{
var Days = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = "name" + "="+ escape(value) + ";expires=" + exp.toGMTString();

</script>
<input id="Button5" type="button" value="中文示例" onclick="setCookie(name,value);" /><br />后台源码为:  protected void Button4_Click(object sender, EventArgs e)
    {
        if (Request.Cookies["Ming"] == null)
        {
            Label3.Text = "no";
        }
        else
        {
            HttpCookie cookie = Request.Cookies["Ming"];
            Label1.Text = "name";
            Label2.Text = cookie.Value;
        }
    }现在取出来的值应该是button的value:“中文示例”,
可是取出来的是乱码,据说js用escape,需要解密可是在后台解密该写那些代码?
求高手源码帮帮忙~~~谢谢!

解决方案 »

  1.   

    我写了一个简单的js存cookies,需要在服务器取cookies的值 
    js源码为: 
    <script language="JavaScript"> 
        function setCookie(name,value) 

    var Days = 30; 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + Days*24*60*60*1000); 
    document.cookie = "name" + "="+ escape(value) + ";expires=" + exp.toGMTString(); 

    </script> 
    <input id="Button5" type="button" value="中文示例" onclick="setCookie(name,value);" /> <br /> 后台源码为:   protected void Button4_Click(object sender, EventArgs e) 
        { 
            if (Request.Cookies["name"] == null) //这里是name
            { 
                Label3.Text = "no"; 
            } 
            else 
            { 
                HttpCookie cookie = Request.Cookies["Ming"]; 
                Label1.Text = "name"; 
                Label2.Text = cookie.Value; 
            } 
        } 现在取出来的值应该是button的value:“中文示例”, 
    可是取出来的是乱码,据说js用escape,需要解密 可是在后台解密该写那些代码? 
    求高手源码帮帮忙~~~谢谢!
      

  2.   

    后台
    Server.UrlEncode(value); 加码
    Server.UrlDecode(value); 解码
      HttpCookie cookie = Server.UrlDecode(Request.Cookies["Ming"]); 
      Label1.Text = "name"; 
                Label2.Text = cookie.Value; 
      

  3.   


    出现4个错误了,
    1,当前上下文不存在value
    2,当前上下文不存在value
    3,与.....Server.UrlDecode(string)最匹配的重载方法具有一些无效参数
    4,参数1,无法从system.web.httpcookies中转型为string
      

  4.   

    我写的
    Server.UrlEncode(value); 加码 
    Server.UrlDecode(value); 解码 
    这个只是一个比如,告诉后台怎么处理的你可以把value理解为一个string 变量;至于后面的我忘记把它转换为string类型了
    HttpCookie cookie = Server.UrlDecode(Request.Cookies["Ming"].tostring()); 
      Label1.Text = "name"; 
                Label2.Text = cookie.Value; 
      

  5.   

     string szTmp = cookie.Value;//解密
     szTmp = Server.UrlDecode(szTmp);//解密
      

  6.   

    document.cookie = "name" + "="+ escape(value) + ";expires=" + exp.toGMTString(); 
    escape改为:encodeURI
    服务器端.cs:
      HttpCookie cookie = Request.Cookies["Ming"]; 
                Label1.Text = "name"; 
                Label2.Text = cookie.Value
    改为:Server.UrlDecode(cookie.Value);