0

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

我需要做任何编码来阻止这种情况的发生吗

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

4

4 回答 4

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

转义数据字符串:Uri.EscapeDataString

EscapedUriString: Uri.EscapeUriString

HtmlEncode:HttpUtility.HtmlEncode

HtmlAttributeEncode:HttpUtility.HtmlAttributeEncode

HexEscape:Uri.HexEscape

笔记:

  1. HexEscape 只能处理前 255 个字符。因此,它会为拉丁 A 扩展字符(例如 Ā)抛出 ArgumentOutOfRange 异常。

  2. 我表中的字符没有完全按照 ASCII/Unicode 升序排列(例如 [、]、\ 是乱序的)。

于 2013-03-01T20:11:37.527 回答
0

您可能想查看使用 C#将这些字符转换为可发布数据的 URLEncode URL Encoding

于 2013-03-01T20:07:51.127 回答
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

于 2013-03-01T20:08:37.507 回答
0

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

于 2013-03-01T20:09:20.223 回答