hello 大家好,今天讲讲HttpUtility.UrlEncode编码

HttpUtility.UrlEncode方法有4个重载分别如下

我们有这么一个字符串

string str = "http://www.cnblogs.com/a file with spaces.html?a=1&b=博客园#abc";

1.使用HttpUtility.UrlEncode(str)

输出效果如下:http%3a%2f%2fwww.cnblogs.com%2fa+file+with+spaces.html%3fa%3d1%26b%3d%e5%8d%9a%e5%ae%a2%e5%9b%ad%23abc

大家可以看出编码后对url及参数都进行了编码

冒号(:):%3a

斜杠(/):%2f

空格:+

问号(?):%3f

等号(=):%3d

与号(&):%26

井号(#):%23

所以呢,这玩意用起来感觉不太适合对URL进行编码,如果参数中有空格并没有转成 %20,而是转成了“+”号,对没有空格的url到是可以用下

2.使用HttpUtility.UrlEncode(str, Encoding.UTF8)

输出效果如下:http%3a%2f%2fwww.cnblogs.com%2fa+file+with+spaces.html%3fa%3d1%26b%3d%e5%8d%9a%e5%ae%a2%e5%9b%ad%23abc

多了一个参数,可以指定编码类型而已,看上去和第一个没区别,我们换一个编码类型就有区别了,请看下边

HttpUtility.UrlEncode(str, Encoding.UTF7)

http%3a%2f%2fwww.cnblogs.com%2fa+file+with+spaces.html%3fa%2bAD0-1%2bACY-b%2bAD1TWluiVu0AIw-abc

这下有区别了吧!

3.使用HttpUtility.UrlEncode(byte[] bytes) 将字节数组转换为编码的 URL 字符串。

byte[] byteArray = Encoding.UTF8.GetBytes(str);获取utf8编码格式的字节数组  
encodeStr = HttpUtility.UrlEncode(byteArray);然后对字节数组进行编码,输入效果等同于第一个

不信看效果如下:

http%3a%2f%2fwww.cnblogs.com%2fa+file+with+spaces.html%3fa%3d1%26b%3d%e5%8d%9a%e5%ae%a2%e5%9b%ad%23abc

4.使用HttpUtility.UrlEncode(byte[] bytes, int offset, int count);从数组中指定位置开始,按照指定字节数量,将字节数组转换为 URL 编码的字符串。

byte[] byteArray = Encoding.UTF8.GetBytes(str);获取utf8编码格式的字节数组  
encodeStr = HttpUtility.UrlEncode(byteArray,0,5);然后对字节数组进行编码,从0位置开始去4个

不信看效果如下:http%3a

PS:HttpUtility.UrlEncode既然是编码,对应的肯定也有解码,就是HttpUtility.UrlEncode对应的也有以上4个方法,总不能给了编码之道不给破解之密吧

好了,今天就到这了。晚安各位

HttpUtility.UrlEncode讲解的更多相关文章

  1. Owin的URL编码怎么搞?以前都是HttpUtility.UrlEncode之类的,现在连system.web都没了,肿么办?

    Owin的URL编码怎么搞?以前都是HttpUtility.UrlEncode之类的,现在连system.web都没了,肿么办? 编码: Uri.EscapeDataString(name) 解码: ...

  2. HttpUtility.UrlEncode 和Server.UrlEncode的区别,记录记录,被乱码搞晕头了。。。。。

    今天修改原来的站点,有几个session和cookies乱码问题,然后又好好看了一下关于编码这块的内容. 大概是:登录处,用session记录了一点中文内容.然后cookies也记录了一点中文内容,取 ...

  3. asp.net4.0在Global中的Application_Start 中直接或间接使用 HttpUtility.UrlEncode等出现异常Response is not available in this context的解决方法

    HttpUtility.HtmlEncode HttpUtility.HtmlDecode HttpUtility.UrlEncode HttpUtility.UrlDecode 也会出现此异常. 这 ...

  4. C#实现HttpUtility.UrlEncode输出大写字母

    在c#中,HttpUtility.UrlEncode("www+mzwu+com")编码结果为www%2bmzwu%2bcom,在和Java开发的平台做对接的时候,对方用用url编 ...

  5. HttpUtility.UrlEncode()关于空格的编码问题

    因为 HttpUtility.UrlEncode 在 Encode 的时候, 将空格转换成加号"+", 在 Decode 的时候将"+"号转为空格, 但是浏览器 ...

  6. HttpUtility.UrlEncode编码重写

    1. 某些系统方法,例如.NET系统方法HttpUtility.UrlEncode会将‘=’编码成‘%3d’,而不是%3D,导致加密签名通不过验证,请开发者注意检查. 2.Java 1.3和早期版本中 ...

  7. c# http get post转义HttpUtility.UrlEncode

    //该数据如果要http get.post提交,需要经过转义,否则该数据中含& ''等字符会导致意外错误.需要转义.这里用HttpUtility.UrlEncode来转义.接收方无需反解析 s ...

  8. c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode

    最近网站里的参数包括中文的例如: http://www.taiba/Tag%b0%ae%c7%e9.html 已开始使用 Server.UrlEncode来做的,但发现,有一些中文在url重写的是说找 ...

  9. C#HttpUtility.UrlEncode 大写问题

    工作上和另一个公司对接,调对方的api需要用到md5加密,加密前要使用HttpUtility.UrlEncode,对方接口一直返回验证错误,定位了问题发现是中文编码使用HttpUtility.UrlE ...

随机推荐

  1. 基于Linux C的socketEthereal程序和Package分析 (一个)

     执行测试平台:CentOS 6.5发行版,内核版本号3.11 1. Linux抓包源程序 在OSI七层模型中.网卡工作在物理层和数据链路层的MAC子层. 进行网络通信时.源主机通过socket( ...

  2. Selenium-actions

    一.鼠标事件 清单 1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作 action. ...

  3. Android Camera2 拍照(四)——对焦模式

    原文:Android Camera2 拍照(四)--对焦模式 本篇将重点介绍使用Camera2 API进行手动对焦的设置,以及在手动对焦与自动对焦模式之间切换. 一.手动对焦响应事件 首先我们要实现点 ...

  4. Genymotion常见问题解决方案

    最近更新了Genymotion之后, 出了一大堆问题, 花了差不多两天的时间, 把一系列问题基本遇到遍了, 终于修成正果, 分享出来希望可以让大家少走一点弯路. 无法启动Genymotion;关键字: ...

  5. Struts2之Struts2

    Struts2-2.5.5版本是目前为止最新的版本了,相对于之前的2.3版本以及再之前的版本而言,新版本改动了很多. 好了,废话不多说,GO CODE! 基本jar包: web.xml核心配置,这里要 ...

  6. Win8 Metro(C#)数字图像处理--2.74图像凸包计算

    原文:Win8 Metro(C#)数字图像处理--2.74图像凸包计算 /// <summary> /// Convex Hull compute. /// </summary> ...

  7. SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)

    原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...

  8. QDialog之屏蔽Esc键(简单深刻,要么重写keyPressEvent然后break忽略此事件,要么重写eventFilter然后return,都是为了忽略此事件)

    简述 Qt中Esc键会在一些控件中默认的进行一些事件的触发,比如:QDialog,按下Esc键窗口消失.大多数情况下,我们不需要这么做,那么就需要对默认事件进行屏蔽. 简述 源码分析 事件过滤器 事件 ...

  9. WinForm子线程调用主线程

    public Form1() { InitializeComponent(); Thread t = new Thread(ThreadWorker); t.Start(); } private vo ...

  10. 解决xp越来越慢的办法(其中有些自动备份的功能)

    1.减少磁盘空间占用2.终止不常用的系统服务3.安全问题4.另外一些技巧 首先问一下,你是不是很想激活XP,不...准确的说你是不是想在ms的站上能够升级.如果答案是肯定的话,那我们就先来探讨一下安装 ...