把汉字编码了再放到cookie里面吧,这样直接用不好

解决方案 »

  1.   

    写入前用escape编码一下
    function readCookie(name){
      var cookieValue = "";
      var search = name + "=";
      if(document.cookie.length > 0)  { 
        offset = document.cookie.indexOf(search);
        if (offset != -1)    { 
          offset += search.length;
          end = document.cookie.indexOf(";", offset);
          if (end == -1) end = document.cookie.length;
          cookieValue = unescape(document.cookie.substring(offset, end))
        }
      }
      return cookieValue;
    }
    function writeCookie(name, value, hours){
      var expire = "";
      if(hours != null)  {
        expire = new Date((new Date()).getTime() + hours * 3600000);
        expire = "; expires=" + expire.toGMTString();
      }
      document.cookie = name + "=" + escape(value) + expire;
    }
      

  2.   

    写cookies是用asp完成的,因为是登陆时的工作在asp里用server.urlencode进行编码,根本没作用
      

  3.   

    写COOKIE时 用ASP时就给加密一下就行了加入这段
    function CodeCookie(str)
    Dim i
    Dim strRtn
    for i=len(str) to 1 step -1
    strRtn=strRtn & ascw(mid(str,i,1))
    if (i<>1) then strRtn = strRtn & "a"
    next 
    CodeCookie=strRtn
    end function然后在你原先输出中文COOKIE的地方 用
    CodeCookie(原先的)再客户端读取时 再解密
    function DecodeCookie(str) {  var strArr;  var strRtn="";  strArr=str.split("a");  for (var i=strArr.length-1;i>=0;i--)  strRtn+=String.fromCharCode(eval(strArr[i]));  return strRtn; } 
    DecodeCookie(加密COOKIE)
      

  4.   

    如果单是客户端操作Cookie用汉字编码的方式可以
    如果Cookie也要用服务端程序处理呢?
      

  5.   

    推荐方案: Server端和Client都用Javascipt代码来写,写入时用escape,读出时用unescape,保证绝对方便可靠