Javascript UrlDecode函数代码


Posted in Javascript onJanuary 09, 2010

有时候可能会有这么一个需求,我在后台使用:

HttpUtility.UrlEncode(str, System.Text.Encoding.UTF8);

将Url进行编码,前台JS需要使用这段内容,这时候就需要解码了:

代码

/** 
* Url编码 
**/ 
ShengUtils.encode = function(unzipStr){ 
var zipstr=""; 
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
var tt= ""; 
for(var i=0;i<unzipStr.length;i++){ 
var chr = unzipStr.charAt(i); 
var c=ShengUtils.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; 
} /** 
* Url解码 
**/ 
ShengUtils.decode=function(zipStr){ 
var uzipStr=""; 
for(var i=0;i<zipStr.length;i++){ 
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+=ShengUtils.AsciiToString(parseInt("0x"+asc)); 
i+=2; 
} 
}else{ 
uzipStr+= chr; 
} 
} 
return uzipStr; 
} 
ShengUtils.StringToAscii=function(str){ 
return str.charCodeAt(0).toString(16); 
} 
ShengUtils.AsciiToString = function(asccode){ 
return String.fromCharCode(asccode); 
}
Javascript 相关文章推荐
javascript生成/解析dom的CDATA类型的字段的代码
Apr 22 Javascript
jquery常用方法及使用示例汇总
Nov 08 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
Bootstrop实现多级下拉菜单功能
Nov 24 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
vue 详情跳转至列表页实现列表页缓存
Mar 27 Javascript
JavaScript原生数组函数实例汇总
Oct 14 Javascript
vue 判断页面是首次进入还是再次刷新的实例
Nov 05 Javascript
JavaScript 页面坐标相关知识整理
Jan 09 #Javascript
了解jQuery技巧来提高你的代码
Jan 08 #Javascript
在html页面上拖放移动标签
Jan 08 #Javascript
利用js获取服务器时间的两个简单方法
Jan 08 #Javascript
JavaScript中的集合及效率
Jan 08 #Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
Jan 08 #Javascript
Extjs学习笔记之八 继承和事件基础
Jan 08 #Javascript
You might like
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
php汉字转拼音的示例
2014/02/27 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
Python中操作符重载用法分析
2016/04/29 Python
wxpython绘制圆角窗体
2019/11/18 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
利用指针变量实现队列的入队操作
2012/04/07 面试题
思想纪律作风整顿剖析材料
2014/10/11 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
领导离职感言
2015/08/03 职场文书
离职告别感言
2015/08/04 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
深入理解Pytorch微调torchvision模型
2021/11/11 Python