我的應用程序中有一個文本框,文本框中的文本通過POST請求作爲發佈數據發送。如果我在文本中包含任何符號(如£或$),則會將它們轉換爲問號。編碼問題和POST數據
是否有任何編碼,我需要做的情況發生
編輯我沒有訪問服務器上的另一端阻止這一切。
我的應用程序中有一個文本框,文本框中的文本通過POST請求作爲發佈數據發送。如果我在文本中包含任何符號(如£或$),則會將它們轉換爲問號。編碼問題和POST數據
是否有任何編碼,我需要做的情況發生
編輯我沒有訪問服務器上的另一端阻止這一切。
你可能想看看的URLEncode URL Encoding using C#這些字符轉換成可發佈的數據
嘗試添加<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
基本的http url編碼會換出你的$爲%24,但是這聽起來不像是這裏的問題。你可能想使用URLEncode,然後在另一端解碼它。或者,如果您將此信息作爲有效負載的一部分發送,則可能需要指定您正在使用的字符編碼(一方正在使用ASCII另一個UTF-8或類似的功能,結果)。
我一直在試驗.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 < < %3C
> %3e %3e > %3E %3E > > %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:
HexEsca pe只能處理前255個字符。因此它爲拉丁A擴展字符(例如Â)拋出一個ArgumentOutOfRange異常。
我的表中的字符沒有按照升序的ASCII/Unicode順序排列(例如[,],\是無序的)。
這非常有幫助。你爲什麼不把它發佈爲PDF – Tushar 2014-01-06 13:19:31
@Tushar感謝您的評論。請告訴我說明將PDF發佈到SO。 – saeed 2014-01-08 13:12:30