用JavaScript实现UrlEncode和UrlDecode的脚本代码


Posted in Javascript onJuly 23, 2008
<script type="text/vbscript">     
Function str2asc(strstr)      
 str2asc = hex(asc(strstr))      
End Function      
Function asc2str(ascasc)      
 asc2str = chr(ascasc)      
End Function     
</script>

将vbscript函数转成javascript,方便非ie浏览器下使用

function str2asc(strstr){ 
return ("0"+strstr.charCodeAt(0).toString(16)).slice(-2); 
} 
function asc2str(ascasc){ 
return String.fromCharCode(ascasc); 
}
<script type="text/javascript">     
/*这里开始时UrlEncode和UrlDecode函数*/      
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;      
}      
alert(UrlDecode("%C2%D2%C2%EB"));     
</script>
Javascript 相关文章推荐
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
jquery中选择块并改变属性值的方法
Jul 31 Javascript
js/jquery去掉空格,回车,换行示例代码
Nov 05 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 Javascript
vue-router路由模式详解(小结)
Aug 26 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
JavaScript大数相加相乘的实现方法实例
Oct 18 Javascript
用js遍历 table的脚本
Jul 23 #Javascript
JavaScript 版本自动生成文章摘要
Jul 23 #Javascript
javascript 支持ie和firefox杰奇翻页函数
Jul 22 #Javascript
IE8 引入跨站数据获取功能说明
Jul 22 #Javascript
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 #Javascript
js停止输出代码
Jul 20 #Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 #Javascript
You might like
Zerg剧情介绍
2020/03/14 星际争霸
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
5 cool javascript apps
2007/03/24 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript时间函数大全
2014/06/30 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
详解python解压压缩包的五种方法
2019/07/05 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
十佳教师事迹材料
2014/01/11 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书