用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 相关文章推荐
推荐20家国外的脚本下载网站
Apr 28 Javascript
基于jQuery实现的水平和垂直居中的div窗口
Aug 08 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
JavaScript中使用Callback控制流程介绍
Mar 16 Javascript
Node.js事件驱动
Jun 18 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
jQuery中inArray方法注意事项分析
Jan 25 Javascript
JavaScript操作 url 中 search 部分方法函数
Jun 15 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
vue+elementUi图片上传组件使用详解
Aug 20 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
Jul 20 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
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
vue写一个组件
2018/04/09 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
pytorch实现查看当前学习率
2020/06/24 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
物流专业大学生的自我鉴定
2013/11/13 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
内科护士节演讲稿
2014/09/11 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
党员检讨书
2014/10/13 职场文书
机关作风建设工作总结
2014/10/23 职场文书
颐和园英文导游词
2015/01/30 职场文书
校园安全学习心得体会
2016/01/18 职场文书