js中escape对应的C#解码函数 UrlDecode


Posted in Javascript onDecember 16, 2012

js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s) //注意编码
需要注意的几点:
1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。
2、Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性。
3、用HttpUtility.UrlEncode编码后的字符串和用Server.UrlEncode进行编码后的字符串对象不一样:
例如:

string url="http://search.99read.com/index.aspx?book_search=all&main_str=奥迷尔"; 
Response.Write(HttpUtility.UrlEncode(url)); 
Response.Write("<br>"); 
Response.Write(Server.UrlEncode(url));

输出结果是
http%3a%2f%2fsearch.99read.com%2findex.aspx%3fbook_search%3dall%26main_str%3d%e5%a5%a5%e8%bf%b7%e5%b0%94
http%3a%2f%2fsearch.99read.com%2findex.aspx%3fbook_search%3dall%26main_str%3d%b0%c2%c3%d4%b6%fb
原因:Server.UrlEncode的编码方式是按照本地程序设置的编码方式进行编码的,而HttpUtility.UrlEncode是默认的按照.net的utf-8格式进行编码的。
如果改一下程序:
string url1="http://search.99read.com/index.aspx?book_search=all&main_str=奥迷尔"; 
Response.Write(HttpUtility.UrlEncode(url1,System.Text.Encoding.GetEncoding("GB2312"))); 
Response.Write("<br>"); 
Response.Write(Server.UrlEncode(url1));

输出的结果是
http%3a%2f%2fsearch.99read.com%2findex.aspx%3fbook_search%3dall%26main_str%3d%b0%c2%c3%d4%b6%fb
http%3a%2f%2fsearch.99read.com%2findex.aspx%3fbook_search%3dall%26main_str%3d%b0%c2%c3%d4%b6%fb
3、有时候可能别的系统传递过来的url是用别的编码方式编码的。
介绍自己编写的一个方法,可以获取指定编码格式的QueryString。
public string GetNonNullQueryString(string key,Encoding encoding) 
{ 
//引用System.Collections.Specialized和System.Text命名空间 
string stringValue; 
System.Collections.Specialized.NameValueCollection encodingQueryString; 
//该方法是在2.0中新增的 
encodingQueryString = HttpUtility.ParseQueryString(Request.Url.Query,encoding); 
//'里面的key就是你提交的参数的Key 
return encodingQueryString[key] != null ? encodingQueryString[key].Trim() : ""; 
}

调用
string url = GetNonNullQueryString("url",Encoding.UTF8).Trim();
----------------------------------------------------------------------------------------------

javascript中escape,encodeURI,encodeURIComponent三个函数的区别
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>
2、 进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");
3、 js使用数据时可以使用escape
[Huoho.Com编辑]
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

Javascript 相关文章推荐
javascript new一个对象的实质
Jan 07 Javascript
如何确保JavaScript的执行顺序 之实战篇
Mar 03 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
Sep 05 Javascript
js类式继承的具体实现方法
Dec 31 Javascript
js charAt的使用示例
Feb 18 Javascript
window.open()实现post传递参数
Mar 12 Javascript
jQuery UI设置固定日期选择特效代码分享
Aug 27 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
JavaScript在web自动化测试中的作用示例详解
Aug 25 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
Oct 12 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 #Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 #Javascript
JS函数实现动态添加CSS样式表文件
Dec 15 #Javascript
js修改地址栏URL参数解决url参数问题
Dec 15 #Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 #Javascript
JavaScript中OnLoad几种使用方法
Dec 15 #Javascript
Javascript中自动切换焦点实现代码
Dec 15 #Javascript
You might like
文章推荐系统(二)
2006/10/09 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python读取stdin方法实例
2019/05/24 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
送给他或她的礼物:FUN.com
2018/08/17 全球购物
电子商务自荐书范文
2014/01/04 职场文书
妇产医师自荐信
2014/01/29 职场文书
差生评语大全
2014/05/04 职场文书
希特勒的演讲稿
2014/05/23 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL