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 fancybox插件打造一个实用的数据传输模态弹出窗体
Jan 15 Javascript
jquery选择器、属性设置用法经验总结
Sep 08 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
特殊情况下如何获取span里面的值
May 20 Javascript
Javascript实现字数统计
Jul 03 Javascript
js浏览器html5表单验证
Oct 17 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 Javascript
[js高手之路]原型式继承与寄生式继承详解
Aug 28 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
微信小程序tabBar设置实例解析
Nov 14 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/06/25 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
js实现随机点名功能
2020/12/23 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
解读python logging模块的使用方法
2018/04/17 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
python里反向传播算法详解
2020/11/22 Python
python 实现控制鼠标键盘
2020/11/27 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
关于是否需要写商业计划书
2014/02/07 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
同学会邀请函模板
2015/01/30 职场文书
婚庆答谢词大全
2015/09/29 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
详解Python描述符的工作原理
2021/06/11 Python
MySQL 使用索引扫描进行排序
2021/06/20 MySQL