编码问题和POST数据

时间:2013-03-01 20:04:03

标签: c#

我的应用程序中有一个文本框,文本框中的文本通过POST请求作为发布数据发送。如果我在文本中包含任何符号,例如£或$,则将它们转换为问号。

我是否需要做任何编码才能阻止这种情况发生

编辑我无法访问另一端的服务器。

4 个答案:

答案 0 :(得分:1)

我一直在尝试.NET为URL编码提供的各种方法。也许下面的表格很有用:

Unencoded UrlEncoded UrlEncodedUnicode UrlPathEncoded EscapedDataString EscapedUriString HtmlEncode HtmlAttributeEncode HexEscape
A         A          A                 A              A                 A                A          A                   %41
B         B          B                 B              B                 B                B          B                   %42
C         C          C                 C              C                 C                C          C                   %43
D         D          D                 D              D                 D                D          D                   %44

a         a          a                 a              a                 a                a          a                   %61
b         b          b                 b              b                 b                b          b                   %62
c         c          c                 c              c                 c                c          c                   %63
d         d          d                 d              d                 d                d          d                   %64

0         0          0                 0              0                 0                0          0                   %30
1         1          1                 1              1                 1                1          1                   %31
2         2          2                 2              2                 2                2          2                   %32
3         3          3                 3              3                 3                3          3                   %33

[space]   +          +                 %20            %20               %20              [space]    [space]             %20
!         !          !                 !              !                 !                !          !                   %21
"         %22        %22               "              %22               %22              "     "              %22
#         %23        %23               #              %23               #                #          #                   %23
$         %24        %24               $              %24               $                $          $                   %24
%         %25        %25               %              %25               %25              %          %                   %25
&         %26        %26               &              %26               &                &      &               %26
'         %27        %27               '              '                 '                '      '               %27
(         (          (                 (              (                 (                (          (                   %28
)         )          )                 )              )                 )                )          )                   %29
*         *          *                 *              *                 *                *          *                   %2A
+         %2b        %2b               +              %2B               +                +          +                   %2B
,         %2c        %2c               ,              %2C               ,                ,          ,                   %2C
-         -          -                 -              -                 -                -          -                   %2D
.         .          .                 .              .                 .                .          .                   %2E
/         %2f        %2f               /              %2F               /                /          /                   %2F
:         %3a        %3a               :              %3A               :                :          :                   %3A
;         %3b        %3b               ;              %3B               ;                ;          ;                   %3B
<         %3c        %3c               <              %3C               %3C              &lt;       &lt;                %3C
>         %3e        %3e               >              %3E               %3E              &gt;       >                   %3E
=         %3d        %3d               =              %3D               =                =          =                   %3D
?         %3f        %3f               ?              %3F               ?                ?          ?                   %3F
@         %40        %40               @              %40               @                @          @                   %40
[         %5b        %5b               [              %5B               %5B              [          [                   %5B
]         %5d        %5d               ]              %5D               %5D              ]          ]                   %5D
\         %5c        %5c               \              %5C               %5C              \          \                   %5C
^         %5e        %5e               ^              %5E               %5E              ^          ^                   %5E
_         _          _                 _              _                 _                _          _                   %5F
`         %60        %60               `              %60               %60              `          `                   %60
{         %7b        %7b               {              %7B               %7B              {          {                   %7B
}         %7d        %7d               }              %7D               %7D              }          }                   %7D
|         %7c        %7c               |              %7C               %7C              |          |                   %7C
~         %7e        %7e               ~              ~                 ~                ~          ~                   %7E

Ā         %c4%80     %u0100            %c4%80         %C4%80            %C4%80           Ā          Ā                   [OoR]
ā         %c4%81     %u0101            %c4%81         %C4%81            %C4%81           ā          ā                   [OoR]
Ē         %c4%92     %u0112            %c4%92         %C4%92            %C4%92           Ē          Ē                   [OoR]
ē         %c4%93     %u0113            %c4%93         %C4%93            %C4%93           ē          ē                   [OoR]
Ī         %c4%aa     %u012a            %c4%aa         %C4%AA            %C4%AA           Ī          Ī                   [OoR]
ī         %c4%ab     %u012b            %c4%ab         %C4%AB            %C4%AB           ī          ī                   [OoR]
Ō         %c5%8c     %u014c            %c5%8c         %C5%8C            %C5%8C           Ō          Ō                   [OoR]
ō         %c5%8d     %u014d            %c5%8d         %C5%8D            %C5%8D           ō          ō                   [OoR]
Ū         %c5%aa     %u016a            %c5%aa         %C5%AA            %C5%AA           Ū          Ū                   [OoR]
ū         %c5%ab     %u016b            %c5%ab         %C5%AB            %C5%AB           ū          ū                   [OoR]

列表示编码如下:

UrlEncoded:HttpUtility.UrlEncode

UrlEncodedUnicode:HttpUtility.UrlEncodeUnicode

UrlPathEncoded:HttpUtility.UrlPathEncode

EscapedDataString:Uri.EscapeDataString

EscapedUriString:Uri.EscapeUriString

HtmlEncode:HttpUtility.HtmlEncode

HtmlAttributeEncode:HttpUtility.HtmlAttributeEncode

HexEscape:Uri.HexEscape

注意:

  1. HexEscape只能处理前255个字符。因此,它会为Latin A-Extended字符抛出ArgumentOutOfRange异常(例如Â)。

  2. 我的表格中的字符并非完全按升序ASCII / Unicode顺序排序(例如[,],\是乱序)。

答案 1 :(得分:0)

您可能希望查看将这些字符转换为可发布数据的URLEncode URL Encoding using C#

答案 2 :(得分:0)

尝试将<meta charset='utf-8'><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>添加到您网页的代码中。

同时检查您网站的web.config以查看在那里设置的全球化设置。明确设置为utf-8可能会有所帮助 参考:http://msdn.microsoft.com/en-us/library/39d1w2xf.aspx

答案 3 :(得分:0)

基本的http url编码会换掉$ for%24,但这听起来不像是这里的问题。您可能想要使用URLEncode,然后在另一端解码它。或者,如果您将此作为有效负载的一部分发送,则可能需要指定您正在使用的字符编码(一方使用ASCII,另一方使用其他UTF-8或其他类似的东西)结果)。

相关问题