用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自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
JS原型对象的创建方法详解
Jun 16 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
JS+HTML5 FileReader对象用法示例
Apr 07 Javascript
mac上node.js环境的安装测试
Jul 03 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 Javascript
详解Vue2 添加对scss的支持
Jan 02 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
python实现rest请求api示例
2014/04/22 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Linux下python制作名片示例
2018/07/20 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
python队列Queue的详解
2019/05/10 Python
Python中请不要再用re.compile了
2019/06/30 Python
python内置模块collections知识点总结
2019/12/19 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Python实现EM算法实例代码
2020/10/04 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
担保书格式及范文
2014/04/01 职场文书
追讨欠款律师函
2015/06/24 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python