实现Server.UrlEncode和Server.UrlDecode功能的js代码
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= "";
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;
}
}
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="";
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;
}
}
return str.charCodeAt(0).toString(16);
}
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>
实现Server.UrlEncode和Server.UrlDecode功能的js代码的更多相关文章
- Server.UrlEncode、HttpUtility.UrlDecode的区别
Server.UrlEncode.HttpUtility.UrlDecode的区别 在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗? 测试: string file="文件上(传 ...
- Server.UrlEncode与Server.UrlDecode(url传递中文的解决方案)
1.设置web.config文件.<system.web> ...... <globalization requestEncoding="gb2312" resp ...
- URL传递中文:Server.UrlEncode与Server.UrlDecode
1.设置web.config文件. <system.web> ...... <globalization requestEncoding="gb2312" r ...
- npm start a http server( 在windows的任意目录上开启一个http server 用来测试html 页面和js代码,不用放到nginx的webroot目录下!!)
原文:https://stackabuse.com/how-to-start-a-node-server-examples-with-the-most-popular-frameworks/#:~:t ...
- HttpUtility.UrlEncode 和Server.UrlEncode的区别,记录记录,被乱码搞晕头了。。。。。
今天修改原来的站点,有几个session和cookies乱码问题,然后又好好看了一下关于编码这块的内容. 大概是:登录处,用session记录了一点中文内容.然后cookies也记录了一点中文内容,取 ...
- asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别
asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别(一) HttpUtility.UrlEncode 方法: 对 ...
- Server.UrlEncode与HttpUtility.UrlEncode的区别
一.HttpUtility.UrlEncode 方法 1.public static string UrlEncode(byte[]) 将字节数组转换为已编码的 URL 字符串. 2.public s ...
- HttpUtility.UrlEncode,Server.UrlEncode 的区别
引用: 1.HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法. 2.Se ...
- Ext.urlEncode与Ext.urlDecode
Ext.urlEncode与Ext.urlDecode: 用于js对象和查询字符串之间的相互转换 Ext.urlEncode例子如下: /* Ext.urlEncode( object, [recur ...
随机推荐
- 1.6.8 Content Streams
1. Content Streams 当RequestHandlers请求基于URL路径来访问时,SolrQueryRequest包含了请求的参数,同样包含了ContentStreams(包含了大容量 ...
- solr--搜索参数随笔
1.默认搜索域.查询域的关系 qf字段的配置:query fields,指定solr从哪些field中搜索 在solrj中设置如下: params.setParam("qf", & ...
- windows获取时间的方法
介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执 行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数.还比如我们通过记录 ...
- 利用Android手机里的摄像头进行拍照
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 1.在API Guides中找到Camera,里面讲解了如何使用系统自带的摄像头进行工作,之后我会试着翻 ...
- python 基础——运算符重载
方法 重载 调用 __init__ 构造函数 x = Class() __del__ 析构函数 del x __str__ 打印 print x __call__ 调用函数 x(*args) __ge ...
- React Native学习-调取摄像头第三方组件:react-native-image-picker
近期做的软件中图片处理是重点,那么自然也就用到了相机照相或者相册选取照片的功能. react-native中有image-picker这个第三方组件,但是0.18.10这个版本还不是太支持iPad. ...
- Storm累计求和进群运行代码
打成jar包放在主节点上去运行. import java.util.Map; import backtype.storm.Config; import backtype.storm.StormSubm ...
- C# 微信支付证书使用
http://wenku.baidu.com/link?url=wt24Gc-2-TbZRoQQ2vRNl5P0pMgp7dIoJMzb_zc1FyiMnBECBDMJ9RTuFCeHl9Lu0ahg ...
- 文件上传利器SWFUpload入门简易教程
凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...
- 手把手教你认识并搭建Nginx
手把手教你认识并搭建Nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor ...