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复制对象使用说明
Jun 28 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
手机软键盘弹出时影响布局的解决方法
Dec 15 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
node中modules.exports与exports导出的区别
Jun 08 Javascript
微信小程序实现横向增长表格的方法
Jul 24 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
解决vue 子组件修改父组件传来的props值报错问题
Nov 09 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 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报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php数组转成json格式的方法
2015/03/09 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
修改发贴的编辑功能
2007/03/07 Javascript
表单元素事件 (Form Element Events)
2009/07/17 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
js实现导航跟随效果
2018/11/17 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
python滑块验证码的破解实现
2019/11/10 Python
大数据分析用java还是Python
2020/07/06 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
开办饭店创业计划书
2013/12/28 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
合作投资意向书
2014/04/01 职场文书
领导参观欢迎词
2015/01/26 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
React自定义hook的方法
2022/06/25 Javascript