【发布时间】:2010-05-24 23:21:13
【问题描述】:
当我写作时
Response.Redirect("Default2.aspx?Name=" + TextBox1.Text);
然后
string input = Request.QueryString["Name"];
如果我在文本框中写 yahoo+music
输入会是雅虎音乐,为什么?我怎样才能保留'+'?
【问题讨论】:
当我写作时
Response.Redirect("Default2.aspx?Name=" + TextBox1.Text);
然后
string input = Request.QueryString["Name"];
如果我在文本框中写 yahoo+music
输入会是雅虎音乐,为什么?我怎样才能保留'+'?
【问题讨论】:
+ 是查询字符串中空格的编码。要编码+,您需要使用%2b。
试试UrlEncode,它会为你处理这个问题。
【讨论】:
URL 中的加号表示空格。您应该对您在 URL 中输入的值进行 URL 编码:
Response.Redirect("Default2.aspx?Name=" + Server.UrlEncode(TextBox1.Text));
【讨论】:
我有另一种方法——虽然有点“棘手”——通过在查询字符串中传递“+”(或任何其他特殊字符)来达到您的目标
当你传递这样的查询字符串时:
Response.Redirect("Default.aspx?Name="+TextBox1.Text.Replace("+","_"));
那么它将通过 Default.aspx?Name=Yahoo_Music
要请求它,只需再次替换
字符串输入 = Request.QueryString["Name"].Replace("_","+");
输入将是:Yahoo+Music。
虽然这种方式有点棘手,但有时这种方式对于在查询字符串中传递特殊字符很有帮助。
谢谢
【讨论】: