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 相关文章推荐
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
BootStrap中Datepicker控件带中文的js文件
Aug 10 Javascript
JavaScript、C# URL编码、解码总结
Jan 21 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
Jul 25 Javascript
详谈js的变量提升以及使用方法
Oct 06 Javascript
一篇文章,教你学会Vue CLI 插件开发
Apr 17 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
Sep 29 Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
JS造成内存泄漏的几种情况实例分析
Mar 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+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
layui使用label标签的方法
2019/09/14 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
python中的字典操作及字典函数
2018/01/03 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
人事专员的职责
2014/02/26 职场文书
建议书怎么写
2014/03/12 职场文书
婚前协议书范本
2014/04/15 职场文书
电钳工人个人求职信
2014/05/10 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技