• HttpUtility.UrlEncode讲解


    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个方法,总不能给了编码之道不给破解之密吧

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

    不拼不播,人生白活。
  • 相关阅读:
    红线行动开发文档
    团队作业1
    第二次作业:安装VS2015和使用自动测试管理工具
    简单介绍VS2015自动测试工具
    软件工程作业(一)
    三带一队 实验十 团队作业6:团队项目用户验收&BETA冲刺
    《三带一队》【Beta】Scrum meeting 4
    《三带一队》【Beta】Scrum meeting 3
    《三带一队》【Beta】Scrum meeting 2
    《三带一队》【Beta】Scrum meeting 1
  • 原文地址:https://www.cnblogs.com/liweilong/p/10887736.html
Copyright © 2020-2023  润新知