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 ui插件的使用方法代码实例
May 08 Javascript
JQuery中使用ajax传输超大数据的解决方法
Jul 14 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
javascript动态创建链接的方法
May 13 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
ES6基础之默认参数值
Feb 21 Javascript
js控制随机数生成概率代码实例
Mar 21 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
Sep 02 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中的MVC模式运用技巧
2007/05/03 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
JS 树形递归实例代码
2010/05/18 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
python基本语法练习实例
2017/09/19 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python hough变换检测直线的实现方法
2019/07/12 Python
python函数的万能参数传参详解
2019/07/26 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
python3让print输出不换行的方法
2020/08/24 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
团委竞选演讲稿
2014/04/24 职场文书
岗位说明书怎么写
2014/07/30 职场文书
项目投资意向书范本
2015/05/09 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android