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 相关文章推荐
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
学JavaScript七大注意事项【必看】
May 04 Javascript
深入理解js promise chain
May 05 Javascript
微信小程序  modal弹框组件详解
Oct 27 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
vue定义全局变量和全局方法的方法示例
Aug 01 Javascript
vue组件创建的三种方式小结
Feb 03 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
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中Session的概念
2006/10/09 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
python学习基础之循环import及import过程
2018/04/22 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
通用C#笔试题附答案
2016/11/26 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
文明礼仪事迹材料
2014/01/09 职场文书
化学专业自荐信
2014/05/28 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
公司备用金管理制度
2015/08/04 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis