加login查询string
我有一个使用C#和asp.net创build的webapp。 我用加号(+)在查询string中放置了一个参数值。 但是加号消失了。
如何在查询string中包含加号(+)而不消失?
请指教。
谢谢。
编辑:添加与UrlEncode代码
string str = Server.UrlEncode(Requery.QueryString["new"]);   +符号在查询string中具有语义含义。 它用来表示空间。 查询string中具有语义重要性的另一个字符是& ,用于分隔查询string中的各个var=value对。 
 大多数服务器端脚本会在使用它们之前解码查询参数,以便将a +正确转换为空格。 现在,如果您希望在查询string中出现文字+ ,则需要指定%2B 。 
  +login查询string被URL解码为空格。 查询string中的%2B被URL解码为+符号。 
看到区别
http://www.google.com/search?q=foo+bar
和
http://www.google.com/search?q=foo%2Bbar
在上面的示例中,Google的服务器脚本是URL解码查询参数,然后使用它们进行search。
  URL编码只不过是%符号,后面是特殊字符的hex代码。 例如,我们知道A的hex代码是0x41(十进制:65)。 尝试这个: 
http://www.google.com/search?q=%41
希望这使得URL编码清晰。
 因此,如果您希望+ JavaScript标记在查询参数中带有+符号的URL获取时被保留,并且服务器端脚本将在URL解码之后处理查询参数,那么您应该对查询参数进行URL编码使用发出HTTP获取请求之前的URL,以便在请求到达服务器端脚本时,所有+符号都转换为%2B 。 现在,当服务器端脚本URL解码查询string时,所有的%2B都被转换回+符号,这正是你想要的。 
请参阅在JavaScript中编码URL? 学习如何使用JavaScript对参数进行URL编码。 从那里的讨论简短的回答:
 var encodedURL = "http://example.com/foo.php?var=" + encodeURIComponent(param); 
你应该URLEncode你的查询string值,以确保任何特殊字符不会丢失。
看看HTML URL编码参考
你需要对+符号进行编码 – 它的值应该是%2B
我改变了我以前的陈述,所以没有人会感到困惑!
使用Server.UrlEncode创build您的url。 例如
 string myUrl = "http://myurl?param1=" + Server.UrlEncode("my+param+1"); 
 其他简单的方法是,假设我的URL是http://localhost/MyApp/Activate.aspx?ActivationCode=cHbtqH9P2dDZkx/mYUgFFo7nrNqSFgqdPisAzzu5/nwlEYDOHI+CQw== Request.Url.ToString().Substring(Request.Url.ToString().IndexOf("=") + 1) http://localhost/MyApp/Activate.aspx?ActivationCode=cHbtqH9P2dDZkx/mYUgFFo7nrNqSFgqdPisAzzu5/nwlEYDOHI+CQw== 
在发送你参数之前,你需要检查参数是否包含加号,如果你需要replace为一个标志,例如:参数是:klasjdlkasd + djid3223你可以replace:klasjdlkasdFLAGdjid3223
当你转换,你需要更换angain
klasjdlkasd + djid3223
解决的办法是总是包含.Replace(“”,“+”),当你请求查询string
string s = Request.QueryString [“id”]。Trim()。Replace(“”,“+”);
来源: http : //www.webmasterworld.com/forum47/3238.htm
试试这个,对我有用:
 Request.QueryString["new"].Trim(); 
在Decrypt Funcation中添加下面这行:
 strText = strText.Replace(" ", "+");