javaScript UrlEncode and UrlDecode

<script language="vbscript">  
    Function str2asc(strstr)    
        str2asc = hex(asc(strstr))    
    End Function    
  
    Function asc2str(ascasc)    
        asc2str = chr(ascasc)    
    End Function   
</script>    
  
<SCRIPT LANGUAGE="JavaScript">  
<!--   
       
    function UrlEncode(str)   
    {    
        var ret="";    
        var strSpecial="!\"#$%&()*+,/:;<=>?[]^`{|}~%"; var tt="";   
        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;    
}   
//str="家"  
//strEncode=UrlEncode(str);   
//strDecode=UrlDecode(strEncode);   
//document.write(str,"=>",strEncode,"=>",strDecode)   
//-->  
</SCRIPT>  

 

你可能感兴趣的:(JavaScript,C++,c,C#,VBScript)