实现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>

时间: 2024-11-05 11:33:40

实现Server.UrlEncode和Server.UrlDecode功能的js代码的相关文章

Server.UrlEncode、HttpUtility.UrlDecode的区别

在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗?测试:string file="文件上(传)篇.doc";string Server_UrlEncode=Server.UrlEncode(file);string Server_UrlDecode=Server.UrlDecode(Server_UrlEncode);string HttpUtility_UrlEncode=System.Web.HttpUtility.UrlEncode(file);string HttpU

URL传递中文:Server.UrlEncode与Server.UrlDecode

1.设置web.config文件. <system.web>  ......  <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />  ......  </system.web> 2.传递中文之前,将要传递的中文参数进行编码,在接收时

Server.UrlEncode与Server.UrlDecode(url传递中文的解决方案)

1.设置web.config文件.<system.web> ...... <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> ...... </system.web> 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码

HttpUtility.UrlEncode,Server.UrlEncode 的区别

引用: 1.HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法. 2.Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性. 3.用HttpUtility.UrlEncode编码后的字符串和用Server.UrlEncode进行编码后的字符串对象不一样 server.urlEncode 可以根据你页面定义好的编码方式进行编

Server.UrlPathEncode和Server.UrlEncode的区别

Server.UrlPathEncode默认使用的是utf-8编码而Server.UrlEncode默认为系统默认编码(一般是gb2312) Server.UrlDecode默认使用系统编码解码.所以这里容易发生路径解码成乱码的问题. Response.Write(Server.UrlDecode(Server.UrlPathEncode("中文")) & "<hr>") Response.Write(HttpUtility.UrlDecode(

讲诉从酒店服务业到IT行业的心酸取经路,另附拙作 ASP.net(C#)利用SQL Server实现注册和登陆功能

楼主本人姓周,名XX,老家是曾国藩故居的,说起来和古人也算是邻里邻居. 92年出生,去年大专毕业,到现在毕业快要一年了,大学里学的专业是酒店管理,我们对外宣称为"第三产业"呵呵.到这里你们可能会心生疑问,咦,大学里怎么会有"酒店专业",你怎么会选它?说到这,楼主不得不提起一个人,那就是我的堂姐,楼主填志愿那年,人小不懂事,根本不知道如何去选择自己的专业,家里人就更不懂了,所以填志愿的事都在我这个堂姐手里做的主,填的那个学校是湖南长沙的,三年大专制,因为我这个表姐本人

SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)

介绍 Audit是SQL Server 2008之后才有的功能,它能告诉你"谁什么时候做了什么事情".具体是指审核SQL Server 数据库引擎实例或单独的数据库涉及到跟踪和记录数据库引擎中发生的事件.它的底层是基于扩展事件(Extented Event),所以其性能和灵活性相对较好.审核数据可以输出到审核文件.Windows安全日志和应用程序日志. Audit都需要创建一个实例级的"SQL Server审核",然后可以创建从属于它"服务器审核规范&qu

SQL Server 2005中的CHECKSUM功能

原文:SQL Server 2005中的CHECKSUM功能 转自此处 页面 checksum 是SQL2005的新功能,提供了一种比残缺页检测强大的机制检测IO方面的损坏.以下是详细描述: 页面 CHECKSUM: 在数据库页面从被写入磁盘到被SQL Server读取的这段时间内,有可能由于外界原因发生损坏.比如I/O设备的损坏,驱动的损坏或者由于电源不稳没有写完整.Checksum机制使SQL Server可以检测到这些损坏.需要注意的是,Checksum机制只能使我们确定是不是I/O子系统

ASP.NET - 对URL传递的值进行编码Server.UrlEncode()

/// <summary> /// 搜索内容 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSearch_Click(object sender, EventArgs e) { string key = txtSearch.Text.Trim(); s