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类
Sep 08 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
May 18 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
Apr 06 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
原生JavaScript实现滚动条效果
Mar 24 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
利用node.js实现反向代理的方法详解
Jul 24 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
Nov 04 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
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
php获取远程文件内容的函数
2015/11/02 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
python读取二进制mnist实例详解
2017/05/31 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Django框架models使用group by详解
2020/03/11 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
Linux的文件类型
2012/03/07 面试题
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
AJAX的全称是什么
2012/11/06 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
自主招生自荐信
2013/12/08 职场文书
元旦晚会策划方案
2014/02/18 职场文书
教师对学生的评语
2014/04/28 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
单位实习介绍信
2015/05/05 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python