URL Encoding using C#

前端 未结 13 1967
北荒
北荒 2020-11-22 08:05

I have an application which sends a POST request to the VB forum software and logs someone in (without setting cookies or anything).

Once the user is logged in I cre

13条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-22 08:49

    Levi Botelho commented that the table of encodings that was previously generated is no longer accurate for .NET 4.5, since the encodings changed slightly between .NET 4.0 and 4.5. So I've regenerated the table for .NET 4.5:

    Unencoded UrlEncoded UrlEncodedUnicode UrlPathEncoded WebUtilityUrlEncoded EscapedDataString EscapedUriString HtmlEncoded HtmlAttributeEncoded WebUtilityHtmlEncoded HexEscaped
    A         A          A                 A              A                    A                 A                A           A                    A                     %41
    B         B          B                 B              B                    B                 B                B           B                    B                     %42
    
    a         a          a                 a              a                    a                 a                a           a                    a                     %61
    b         b          b                 b              b                    b                 b                b           b                    b                     %62
    
    0         0          0                 0              0                    0                 0                0           0                    0                     %30
    1         1          1                 1              1                    1                 1                1           1                    1                     %31
    
    [space]   +          +                 %20            +                    %20               %20              [space]     [space]              [space]               %20
    !         !          !                 !              !                    %21               !                !           !                    !                     %21
    "         %22        %22               "              %22                  %22               %22              "      "               "                %22
    #         %23        %23               #              %23                  %23               #                #           #                    #                     %23
    $         %24        %24               $              %24                  %24               $                $           $                    $                     %24
    %         %25        %25               %              %25                  %25               %25              %           %                    %                     %25
    &         %26        %26               &              %26                  %26               &                &       &                &                 %26
    '         %27        %27               '              %27                  %27               '                '       '                '                 %27
    (         (          (                 (              (                    %28               (                (           (                    (                     %28
    )         )          )                 )              )                    %29               )                )           )                    )                     %29
    *         *          *                 *              *                    %2A               *                *           *                    *                     %2A
    +         %2b        %2b               +              %2B                  %2B               +                +           +                    +                     %2B
    ,         %2c        %2c               ,              %2C                  %2C               ,                ,           ,                    ,                     %2C
    -         -          -                 -              -                    -                 -                -           -                    -                     %2D
    .         .          .                 .              .                    .                 .                .           .                    .                     %2E
    /         %2f        %2f               /              %2F                  %2F               /                /           /                    /                     %2F
    :         %3a        %3a               :              %3A                  %3A               :                :           :                    :                     %3A
    ;         %3b        %3b               ;              %3B                  %3B               ;                ;           ;                    ;                     %3B
    <         %3c        %3c               <              %3C                  %3C               %3C              <        <                 <                  %3C
    =         %3d        %3d               =              %3D                  %3D               =                =           =                    =                     %3D
    >         %3e        %3e               >              %3E                  %3E               %3E              >        >                    >                  %3E
    ?         %3f        %3f               ?              %3F                  %3F               ?                ?           ?                    ?                     %3F
    @         %40        %40               @              %40                  %40               @                @           @                    @                     %40
    [         %5b        %5b               [              %5B                  %5B               [                [           [                    [                     %5B
    \         %5c        %5c               \              %5C                  %5C               %5C              \           \                    \                     %5C
    ]         %5d        %5d               ]              %5D                  %5D               ]                ]           ]                    ]                     %5D
    ^         %5e        %5e               ^              %5E                  %5E               %5E              ^           ^                    ^                     %5E
    _         _          _                 _              _                    _                 _                _           _                    _                     %5F
    `         %60        %60               `              %60                  %60               %60              `           `                    `                     %60
    {         %7b        %7b               {              %7B                  %7B               %7B              {           {                    {                     %7B
    |         %7c        %7c               |              %7C                  %7C               %7C              |           |                    |                     %7C
    }         %7d        %7d               }              %7D                  %7D               %7D              }           }                    }                     %7D
    ~         %7e        %7e               ~              %7E                  ~                 ~                ~           ~                    ~                     %7E
    
    Ā         %c4%80     %u0100            %c4%80         %C4%80               %C4%80            %C4%80           Ā           Ā                    Ā                     [OoR]
    ā         %c4%81     %u0101            %c4%81         %C4%81               %C4%81            %C4%81           ā           ā                    ā                     [OoR]
    Ē         %c4%92     %u0112            %c4%92         %C4%92               %C4%92            %C4%92           Ē           Ē                    Ē                     [OoR]
    ē         %c4%93     %u0113            %c4%93         %C4%93               %C4%93            %C4%93           ē           ē                    ē                     [OoR]
    Ī         %c4%aa     %u012a            %c4%aa         %C4%AA               %C4%AA            %C4%AA           Ī           Ī                    Ī                     [OoR]
    ī         %c4%ab     %u012b            %c4%ab         %C4%AB               %C4%AB            %C4%AB           ī           ī                    ī                     [OoR]
    Ō         %c5%8c     %u014c            %c5%8c         %C5%8C               %C5%8C            %C5%8C           Ō           Ō                    Ō                     [OoR]
    ō         %c5%8d     %u014d            %c5%8d         %C5%8D               %C5%8D            %C5%8D           ō           ō                    ō                     [OoR]
    Ū         %c5%aa     %u016a            %c5%aa         %C5%AA               %C5%AA            %C5%AA           Ū           Ū                    Ū                     [OoR]
    ū         %c5%ab     %u016b            %c5%ab         %C5%AB               %C5%AB            %C5%AB           ū           ū                    ū                     [OoR]
    

    The columns represent encodings as follows:

    • UrlEncoded: HttpUtility.UrlEncode
    • UrlEncodedUnicode: HttpUtility.UrlEncodeUnicode
    • UrlPathEncoded: HttpUtility.UrlPathEncode
    • WebUtilityUrlEncoded: WebUtility.UrlEncode
    • EscapedDataString: Uri.EscapeDataString
    • EscapedUriString: Uri.EscapeUriString
    • HtmlEncoded: HttpUtility.HtmlEncode
    • HtmlAttributeEncoded: HttpUtility.HtmlAttributeEncode
    • WebUtilityHtmlEncoded: WebUtility.HtmlEncode
    • HexEscaped: Uri.HexEscape

    NOTES:

    1. HexEscape can only handle the first 255 characters. Therefore it throws an ArgumentOutOfRange exception for the Latin A-Extended characters (eg Ā).

    2. This table was generated in .NET 4.5 (see answer https://stackoverflow.com/a/11236038/216440 for the encodings relevant to .NET 4.0 and below).

    EDIT:

    1. As a result of Discord's answer I added the new WebUtility UrlEncode and HtmlEncode methods, which were introduced in .NET 4.5.

提交回复
热议问题