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 相关文章推荐
jQuery的实现原理的模拟代码 -1 核心部分
Aug 01 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
Apr 26 Javascript
node中koa中间件机制详解
Aug 22 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
Nov 22 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
Sep 29 Javascript
使用vue实现通过变量动态拼接url
Jul 22 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二维数组的去重问题解析
2011/07/17 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
python执行get提交的方法
2015/04/29 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
简单实现Python爬取网络图片
2018/04/01 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
实习单位推荐信范文
2013/11/27 职场文书
一夜的工作教学反思
2014/02/08 职场文书
降消项目实施方案
2014/03/30 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
如何写辞职信
2015/05/13 职场文书
回复函格式及范文
2015/07/14 职场文书
教师节获奖感言
2015/07/31 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
Python+Appium新手教程
2021/04/17 Python
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
Python实现为PDF去除水印的示例代码
2022/04/03 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL