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 相关文章推荐
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
给Function做的OOP扩展
May 07 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
Jul 29 Javascript
jquery下异步提交表单 异步跨域提交表单
Nov 17 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
JavaScript实现图像模糊化的方法实例
Jan 15 Javascript
JavaScript自定义分页样式
Jan 17 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
微信小程序导航栏跟随滑动效果的实现代码
May 14 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
Aug 24 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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
基于jquery的一个图片hover的插件
2010/04/24 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Python random模块常用方法
2014/11/03 Python
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Pytorch转tflite方式
2020/05/25 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
求职自荐信格式
2013/12/04 职场文书
统计系教授推荐信
2014/02/28 职场文书
推广普通话标语
2014/06/27 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
小学生安全保证书
2015/05/09 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
把77A收信机改造成收音机
2022/04/05 无线电
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript