用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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
编写可维护面向对象的JavaScript代码[翻译]
Feb 12 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
使用javascript做的一个随机点名程序
Feb 13 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
jquery获取css的color值返回RGB的方法
Dec 18 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 Javascript
jquery.masonry瀑布流效果
May 25 jQuery
Angular中的$watch方法详解
Sep 18 Javascript
Vue实现搜索结果高亮显示关键字
May 28 Javascript
手把手15分钟搭一个企业级脚手架
Sep 16 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
js微信分享实现代码
2020/10/11 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
车辆维修工自我评价怎么写
2013/09/20 职场文书
新员工培训个人的自我评价
2013/10/09 职场文书
应聘护士自荐信
2013/10/21 职场文书
女大学生个人求职信
2013/12/09 职场文书
电子商务专员岗位职责
2013/12/11 职场文书
大学新生欢迎词
2014/01/10 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
授权委托书公证
2014/09/14 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
MySQL查询日期时间
2022/05/15 MySQL