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左右滚动支持图片放大缩略图图片轮播代码分享
Aug 26 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
原生JavaScript实现瀑布流布局
Jun 28 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 Javascript
微信小程序  网络请求API详解
Oct 25 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
Nov 09 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
JavaScript定义函数_动力节点Java学院整理
Jun 27 Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 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的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jQuery功能函数详解
2015/02/01 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
vue组件实例解析
2017/01/10 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
详解Vue.directive 自定义指令
2019/03/27 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
使用Python生成XML的方法实例
2017/03/21 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
python中判断文件结束符的具体方法
2020/08/04 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
制作部班长职位说明书
2014/02/26 职场文书
个人授权委托书范本
2014/04/03 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
手术室护士个人总结
2015/02/13 职场文书
大学生自荐信范文
2015/03/05 职场文书
网络妈妈观后感
2015/06/08 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
2022年四月新番
2022/03/15 日漫