当我写
Response.Redirect("Default2.aspx?Name=" + TextBox1.Text);
然后
string input = Request.QueryString["Name"];
如果我在文本框中写yahoo + music
输入将是雅虎音乐为什么?我怎样才能保留'+'?
答案 0 :(得分:7)
+
是查询字符串中空格的编码。要对+
进行编码,您需要使用%2b
。
尝试使用UrlEncode
来处理此问题。
答案 1 :(得分:3)
URL中的加号表示空格。您应该对您在URL中输入的值进行URL编码:
Response.Redirect("Default2.aspx?Name=" + Server.UrlEncode(TextBox1.Text));
答案 2 :(得分:0)
我有另一种方式 - 虽然有点'棘手' - 通过在查询字符串中传递'+'(或任何其他特殊字符)来达到目标
当您传递您编写的查询字符串时,如下所示:
的Response.Redirect( “Default.aspx的名称=?” + TextBox1.Text.Replace( “+”, “_”));
然后它将传递Default.aspx?Name = Yahoo_Music
并要求它,只需再次替换
string input = Request.QueryString [“Name”]。替换(“_”,“+”);
输入将是:Yahoo + Music。
虽然这种方式有点棘手,但有时候这种方式对于在查询字符串中传递特殊字符非常有帮助。
由于