2013-03-01 60 views
0

我的應用程序中有一個文本框,文本框中的文本通過POST請求作爲發佈數據發送。如果我在文本中包含任何符號(如£或$),則會將它們轉換爲問號。編碼問題和POST數據

是否有任何編碼,我需要做的情況發生

編輯我沒有訪問服務器上的另一端阻止這一切。

回答

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

0

基本的http url編碼會換出你的$爲%24,但是這聽起來不像是這裏的問題。你可能想使用URLEncode,然後在另一端解碼它。或者,如果您將此信息作爲有效負載的一部分發送,則可能需要指定您正在使用的字符編碼(一方正在使用ASCII另一個UTF-8或類似的功能,結果)。

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    &quot;  &quot;    %22 
#   %23  %23    #    %23    #    #   #     %23 
$   %24  %24    $    %24    $    $   $     %24 
%   %25  %25    %    %25    %25    %   %     %25 
&   %26  %26    &    %26    &    &amp;  &amp;    %26 
'   %27  %27    '    '     '    &#39;  &#39;    %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

NOTES:

  1. HexEsca pe只能處理前255個字符。因此它爲拉丁A擴展字符(例如Â)拋出一個ArgumentOutOfRange異常。

  2. 我的表中的字符沒有按照升序的ASCII/Unicode順序排列(例如[,],\是無序的)。

+0

這非常有幫助。你爲什麼不把它發佈爲PDF – Tushar 2014-01-06 13:19:31

+0

@Tushar感謝您的評論。請告訴我說明將PDF發佈到SO。 – saeed 2014-01-08 13:12:30