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 相关文章推荐
javascript window对象属性整理
Oct 24 Javascript
JavaScript 反科里化 this [译]
Sep 20 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
Aug 31 Javascript
js css自定义分页效果
Feb 24 Javascript
利用angularjs1.4制作的简易滑动门效果
Feb 28 Javascript
tab栏切换原理
Mar 22 Javascript
在小程序中使用Echart图表的示例代码
Aug 02 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
node+multer实现图片上传的示例代码
Feb 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
PHP 工厂模式使用方法
2010/05/18 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python3 socket同步通信简单示例
2017/06/07 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python爬虫容易学吗
2020/06/02 Python
小结Python的反射机制
2020/09/28 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
学术会议邀请函范文
2014/01/22 职场文书
30岁生日感言
2014/01/25 职场文书
商场消防演习方案
2014/02/12 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
2014年城管工作总结
2014/11/20 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
聘任证明怎么写
2015/03/02 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
工作时间调整通知
2015/04/24 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android