2014-09-04 101 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