参考这个:http://www.weste.net/2006/12-28/16170366142.html

解决方案 »

  1.   


    JS操作cookies方法!
    [code]//写cookies
    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();
    }
    //读取cookies
    function getCookie(name)
    {
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg)) return unescape(arr[2]);
    else return null;
    }
    //删除cookies
    function delCookie(name)
    {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    }
    //使用示例
    setCookie("name","hayden");
    alert(getCookie("name"));
    如果需要设定自定义过期时间
    那么把上面的setCookie 函数换成下面两个函数就ok;
    程序代码
    function setCookie(name,value,time){
    var strsec = getsec(time);
    var exp = new Date();
    exp.setTime(exp.getTime() + strsec*1);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
    function getsec(str){
        alert(str);
        var str1=str.substring(1,str.length)*1; 
        var str2=str.substring(0,1); 
        if (str2=="s"){
        return str1*1000;
        }else if (str2=="h"){
        return str1*60*60*1000;
        }else if (str2=="d"){
        return str1*24*60*60*1000;
        }
    }
    //这是有设定过期时间的使用示例:
    //s20是代表20秒
    //h是指小时,如12小时则是:h12
    //d是天数,30天则:d30
    //暂时只写了这三种,不知道谁有更好的方法,呵呵
    setCookie("name","hayden","s20");
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="zourinet">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY>
    <form method="post" action="">
    <div>
    <script language="vbscript"> 
    Function str2asc(strstr) 
     str2asc = hex(asc(strstr)) 
    End Function 
    Function asc2str(ascasc) 
     asc2str = chr(ascasc) 
    End Function 
    </script>
    <script language="JavaScript">
    /* <![CDATA[ */
    /*这里开始时UrlEncode和UrlDecode函数*/ 
    function UrlEncode(str){ 
      var ret=""; 
      var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
      for(var i=0;i<str.length;i++){ 
       var chr = str.charAt(i); 
        var c=str2asc(chr); 
        tt += chr+":"+c+"n"; 
        if(parseInt("0x"+c) > 0x7f){ 
          ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
        }else{ 
          if(chr==" ") 
            ret+="+"; 
          else if(strSpecial.indexOf(chr)!=-1) 
            ret+="%"+c.toString(16); 
          else 
            ret+=chr; 
        } 
      } 
      return ret; 

    function UrlDecode(str){ 
      var ret=""; 
      for(var i=0;i<str.length;i++){ 
       var chr = str.charAt(i); 
        if(chr == "+"){ 
          ret+=" "; 
        }else if(chr=="%"){ 
         var asc = str.substring(i+1,i+3); 
         if(parseInt("0x"+asc)>0x7f){ 
          ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
          i+=5; 
         }else{ 
          ret+=asc2str(parseInt("0x"+asc)); 
          i+=2; 
         } 
        }else{ 
          ret+= chr; 
        } 
      } 
      return ret; 
    } alert(UrlDecode('%C3%C0%C5%AE'));
    /* ]]> */
    </script>
    </div>
    </form>
    </BODY>
    </HTML>
      

  3.   

    换个方式来提交??嘿嘿.....
    1.htm
    <form method=get action=2.htm> 
    <input type="text" name='myname'> 
    <input type="button" value=' ok ' onclick="ChangeEncoding(this.form)"> 
    <script>
    String.prototype.trim=function(reg)
    {
      if(reg)
        return this.replace(reg,"");
      else
        return this.replace(/^\s*|\s*$/g,"");
    }
    function ChangeEncoding(f)
    {
      var querystring="";
      var e;
      for(var i=0;i<f.elements.length;i++)
      {
        e=f.elements[i];
        if(e.name&&e.value&&e.value.trim()!="")
          querystring+=e.name+"="+escape(e.value)+"&";//用escape编码..
      }
      if(querystring!="")
        location=f.action+"?"+querystring.trim(/&$/g);//去掉最后一个&
      else
        f.submit();
    }
    </script>
      </form> 2.htm
    <head> 
      <SCRIPT LANGUAGE="JavaScript"> 
      <!-- 
     function init(){ 
     var myname="";  //接收 
       myhref=document.location.href;   //得到形如:http://www.baidu.com?MyKey=s.h.e&MyType=0 
       if(myhref.indexOf("?")!=-1){ 
          sz1=myhref.split("?");        //得到形如:http://www.baidu.com 和 MyKey=s.h.e&MyType=0 
         sz2=sz1[1].split("&");     //得到形如:MyKey=s.h.e 和 MyType=0 
             for (i=0;i <sz2.length ;i++ ) 
               { 
                  if(sz2[i].indexOf("myname=")!=-1){ 
                 tmpsz=sz2[i].split("="); 
             myname=tmpsz[1];           
               } 
                } 
       } 
     myname=String(myname).replace("#",""); 
       //改变表单值    
       document.form2.myname.value=unescape(myname); //需要unescape来解码.

     //--> 
      </SCRIPT> 
      </head> 
    <body onload='javascript:init();'> 
    <form name='form2' method=get action=2.htm> 
    <input type=text name='myname'> 
    <input type=submit value=' ok '> 
    </form> 
    </body> 
      

  4.   

    没有现成的函数吗?还需要自己写?
    兼容性如何?顺便问下VBSCRIPT和JS之间可以相互调用啊?原来!
      

  5.   

      请问下,为什么会出现LZ说的那种现象?LZ那儿自己并没有对提交的数据进行编码啊,而且我对2.html的数据进行了解码,用的是楼上的unescape,显然不行,原因是LZ在1.html中对提交的数据并没有escape,我想,应该是HTML默认的当GET的时候就将提交的数据以某种方式进行了编码,现在的问题就是我不知道是那种方式编的码,所以自然也不能解码,高手赐教
      

  6.   

    get提交有中文时可以先用escape编码,然后目的页面就可以使用unescape解码了可以参考5楼,要不就参考myvicy :http://www.weste.net/2006/12-28/16170366142.html
      

  7.   

    问题出现在这里 
    if(sz2[i].indexOf("myname=")!=-1){ 
                 tmpsz=sz2[i].split("="); 
             myname=tmpsz[1];2.htm?myname=%C3%C0%C5%AE
    你要求的就是得到后面的%C3%C0%C5%AE
    当然就显示%C3%C0%C5%AE
      

  8.   

     请问下,为什么会出现LZ说的那种现象?LZ那儿自己并没有对提交的数据进行编码啊,而且我对2.html的数据进行了解码,用的是楼上的unescape,显然不行,原因是LZ在1.html中对提交的数据并没有escape,我想,应该是HTML默认的当GET的时候就将提交的数据以某种方式进行了编码,现在的问题就是我不知道是那种方式编的码,所以自然也不能解码,高手赐教