加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(" ", "+");