2012-06-21 32 views
2

我用POST方法提交數據,我已經使用URL編碼方法

HttpUtility.UrlEncode(string data) 

數據的URL編碼。但對於某些字符串,服務器端的數據會顯示爲與我提交的不同。

EX:

string data = "¦=¦=¦"; 
data = HttpUtility.UrlEncode(data); 

數據提交到服務器後,它顯示的字符串作爲Â|=Â|=Â|但原始字符串是| = | = |

和URL編碼我應該使用能編碼 「」 至%28, 「」 到%29。我可以找到這個。

我也使用HttpUtility.UrlEncodeUnicode,HttpUtility.UrlPathEncode但不起作用。 哪種url編碼適合這種類型的字符串?

回答

1

在你的代碼示例中,你使用的ASCII是char「|」,這不是一個有效的ASCII字符。 使用Unicode,它可能工作。

System.Text.UnicodeEncoding uni = new UnicodeEncoding(); 
byteArray = uni.GetBytes(data); 
+0

您使用ASCII字符爲 「|」 這不是一個有效的ASCII字符。使用Unicode,它可能工作。 – retslig

+0

我更新了問題請看看。 – Prince123

+0

沒有這個不行。 – Prince123

2

使用HttpUtility.UrlDecode(數據),把它找回來的 「| = | = |」

+0

如何提交後從服務器端解碼? – Prince123

+0

我建議你保持每一側的編碼相同 例如string data =「| = | = |」; data = HttpUtility.UrlEncode(data,Encoding.UTF8); string dataOnServerSide = HttpUtility.UrlDecode(data,Encoding.UTF8); – HatSoft

+0

您可以通過創建自定義HttpHandler來實現從服務器端解碼http://msdn.microsoft.com/en-us/library/bb398986.aspx – HatSoft