2014-09-04 103 views
0

我想知道如何通過http鏈接發送加號(+),因爲當我試圖在編碼後發送它像這樣%2B仍然是空的空間。如果我嘗試+我得到雙空白空間。請幫助我。如何通過http發送加號(+)符號?

我使用的瀏覽器發送這樣的頁面:

localhost:/CPA-API/MT.aspx?msg=Testing%2BTesting 

,並從碼接收的背後是這樣的:

msg = Server.UrlDecode(Request.QueryString["msg"].ToString()); 

但我越來越喜歡這樣的輸出:

msg = Testing Testing 

在此先感謝。

+3

你能表現出一定的代碼? – 2014-09-04 09:42:41

+0

可能接收它的程序正在將%2B轉換爲空格 – mplungjan 2014-09-04 09:45:25

+0

也許這是[link](http://stackoverflow.com/questions/8517511/c-sharp-escape-plus-sign-in-post-using-httpwebrequest )可能會幫助 – 2014-09-04 09:46:32

回答

1

嘗試沒有urldecode

string msg = Request.QueryString["msg"]; 
string decoded = Server.UrlDecode(msg); 

結果:

msg = "Testing+Testing" 
decoded = "Testing Testing" 
+0

另請參閱Request.QueryString的msdn頁面:http://msdn.microsoft.com/en-us/library/ms524784(v=vs.90).aspx – Edi 2014-09-04 10:08:37

+0

當您在Request.QueryString中使用參數時,服務器將解析發送給請求的參數並返回指定的數據。如果您的應用程序需要未經解析的QueryString數據,則可以通過調用Request.QueryString而不使用任何參數來檢索它。 - [MSDN](http://msdn.microsoft.com/en-us/library/ms524784(v = vs.90).aspx) – Edi 2014-09-04 10:10:12

+0

非常感謝您的幫助。但是現在我正在嘗試發送歐元符號€但是我收到了使用Request.QueryString [「msg」]的b $,請您介意再次幫助我一次? – barsan 2014-09-09 06:33:03