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控制iFrame(实例代码)
Nov 19 Javascript
详解JavaScript中的every()方法
Jun 08 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
jQuery实现多级联动下拉列表查询框
Jan 18 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
React Navigation 使用中遇到的问题小结
May 08 Javascript
前端js中的事件循环eventloop机制详解
May 15 Javascript
构建Vue大型应用的10个最佳实践(小结)
Nov 07 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根据分类合并数组的方法实例详解
2013/11/06 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
javascript实现简单留言板案例
2021/02/09 Javascript
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
介绍一下write命令
2012/09/24 面试题
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
教师学习心得体会范文
2016/01/21 职场文书
2019财务转正述职报告
2019/06/27 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
深入理解python多线程编程
2021/04/18 Python
django学习之ajax post传参的2种格式实例
2021/05/14 Python
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android