zoukankan      html  css  js  c++  java
  • QueryString-UrlEncode 与 UrlPathEncode 的区别

    System.Web.HttpUtility.UrlEncode 与 System.Web.HttpUtility.UrlPathEncode 两个的区别从微软官方的解释来说让人莫名其妙:对 URL 字符串进行编码;对 URL 字符串的路径部分进行编码。

    下面用示例加白话进行一些区别解释:

    示例

    Response.Write(System.Web.HttpUtility.UrlEncode("http://www.cftea.com/搜/?q=千一网络"));
    Response.Write(Environment.NewLine);
    Response.Write(System.Web.HttpUtility.UrlPathEncode("http://www.cftea.com/搜/?q=千一网络"));
    Response.Write(Environment.NewLine);
    Response.Write(System.Web.HttpUtility.UrlEncode("千一网络 &\""));
    Response.Write(Environment.NewLine);
    Response.Write(System.Web.HttpUtility.UrlPathEncode("千一网络 &\""));

    结果

    http%3a%2f%2fwww.cftea.com%2f%e6%90%9c%2f%3fq%3d%e5%8d%83%e4%b8%80%e7%bd%91%e7%bb%9c
    http://www.cftea.com/%e6%90%9c/?q=千一网络
    %e5%8d%83%e4%b8%80%e7%bd%91%e7%bb%9c+%26%22
    %e5%8d%83%e4%b8%80%e7%bd%91%e7%bb%9c%20&"

    根据结果,我们可以得出两个区别

    一是在 UrlEncode 看来,传入的参数是 QueryString 的参数值,都需要编码;而 UrlPathEncode 只编码 Url 的路径部分,不编码 QueryString 部分,如果传入的参数不像一个 URL,那么就当作 Url 的路径部分。

    二是特殊字符对待上的区别,UrlEncode 将空格编码为 +,&、" 分别编码为 %26、%22;而 UrlPathEncode 则编码空格为 %20,&、" 却不编码。

    用途

    UrlEncode 主要是用于对 QueryString 的参数值进行编码。

  • 相关阅读:
    Numpy
    Homer SIP capture and VoIP Monitoring Install Guide
    How to install FreeSWITCH in Centos 7
    Media Samples
    lavfi
    Jitsi Sip Communicator Source Code Build Guide for Windows
    How to install Asterisk 13 with WebRTC support in CentOS
    How to build PJSIP with WebRTC
    WebRTC & SIP: The Demo
    WebRTC tutorial using SIPML5
  • 原文地址:https://www.cnblogs.com/fengye87626/p/3044414.html
Copyright © 2011-2022 走看看