zoukankan      html  css  js  c++  java
  • 实现Server.UrlEncode和Server.UrlDecode功能的js代码

    <script>
    var EncodeURI = function(unzipStr,isCusEncode){
        if(isCusEncode){
            var zipArray = new Array();
            var zipstr = "";
            var lens = new Array();
            for(var i=0;i<unzipStr.length;i++){
             var ac = unzipStr.charCodeAt(i);
             zipstr += ac;
             lens = lens.concat(ac.toString().length);
            }
            zipArray = zipArray.concat(zipstr);
            zipArray = zipArray.concat(lens.join("O"));
            return zipArray.join("N");
        }else{
            //return encodeURI(unzipStr);
            var zipstr="";
            var strSpecial="!"#$%&'()*+,/:;<=>?[]^`{|}~%";
            var tt= "";
            for(var i=0;i<unzipStr.length;i++){
                var chr = unzipStr.charAt(i);
                var c=StringToAscii(chr);
                tt += chr+":"+c+"n";
                if(parseInt("0x"+c) > 0x7f){
                     zipstr+=encodeURI(unzipStr.substr(i,1));
                }else{
                     if(chr==" ")
                        zipstr+="+";
                     else if(strSpecial.indexOf(chr)!=-1)
                        zipstr+="%"+c.toString(16);
                     else
                        zipstr+=chr;
                    }
                }
            return zipstr;
        }
    }
    var DecodeURI = function(zipStr,isCusEncode){
        if(isCusEncode){
            var zipArray = zipStr.split("N");
            var zipSrcStr = zipArray[0];
            var zipLens;
            if(zipArray[1]){
                zipLens = zipArray[1].split("O");   
            }else{
                zipLens.length = 0;
            }
           
            var uzipStr = "";
           
            for(var j=0;j<zipLens.length;j++){
                var charLen = parseInt(zipLens[j]);
                uzipStr+= String.fromCharCode(zipSrcStr.substr(0,charLen));
                zipSrcStr = zipSrcStr.slice(charLen,zipSrcStr.length);
            }       
            return uzipStr;
        }else{
            //return decodeURI(zipStr);
            var uzipStr="";
            for(var i=0;i<zipStr.length;i++){
                var chr = zipStr.charAt(i);
                if(chr == "+"){
                     uzipStr+=" ";
                }else if(chr=="%"){
                     var asc = zipStr.substring(i+1,i+3);
                     if(parseInt("0x"+asc)>0x7f){
                         uzipStr+=decodeURI("%"+asc.toString()+zipStr.substring(i+3,i+9).toString()); ;
                         i+=8;
                     }else{
                         uzipStr+=AsciiToString(parseInt("0x"+asc));
                         i+=2;
                     }
                }else{
                     uzipStr+= chr;
                }
            }
            return uzipStr;
        }
    }
    var StringToAscii = function(str){
        return str.charCodeAt(0).toString(16);
    }
    var AsciiToString = function(asccode){
        return String.fromCharCode(asccode);
    }
    </script>

    以上代码跟c#写的Server.UrlEncode实现的效果是一样的,如果大家需要在客户端传入中文的字符,可以试试这个函数。

    使用方法:"http://www.fanchuanbook.com/search.aspx?q=" + EncodeURI(q,false)

              <script>

    var url="{PHPCMS_PATH}yczx/searchcy.php?ordertype=1&search=1&searchtype=content&catid=183&keywords="+EncodeURI("{$title}");
    var encode=EncodeURI("{$title}");
    document.write('<a href="' + url +'" target="_blank" class="wg-x12">');
    document.write('点击可查看该场所所有演出排期</a>');
    </script>

  • 相关阅读:
    day74作业
    day072作业
    Serializer类
    day067作业
    day066作业
    day065作业
    django
    jQuery
    JavaScript
    mediaplayer state
  • 原文地址:https://www.cnblogs.com/wawahaha/p/4849249.html
Copyright © 2011-2022 走看看