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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
利用javascript数组长度循环数组内所有元素
Dec 27 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
Aug 18 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
Dec 11 Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 Javascript
JS中如何轻松遍历对象属性的方式总结
Aug 06 Javascript
extjs4图表绘制之折线图实现方法分析
Mar 06 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
Element Popover 弹出框的使用示例
Jul 26 Javascript
canvas绘制折线路径动画实现
May 12 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的urlencode()URL编码函数浅析
2011/08/09 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
在python中实现对list求和及求积
2018/11/14 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
python同步两个文件夹下的内容
2019/08/29 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
儿媳婚宴答谢词
2014/01/14 职场文书
领班岗位职责范文
2014/02/06 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
建立共青团委员会的请示
2019/04/02 职场文书