2010-07-28 100 views
1

我有一个问题,如果我通过在查询字符串包含+,并尝试读取一个字符串,它会得到相同的字符串,但通过与空字符
更换+例如,如果我通过查询像../Page.aspx?data=sdf1+sdf然后在页面负载我读到data = Request.QueryString["data"]data它会得到如下data ="sdf1 sdf"
我解决了更换与+任何空字符的问题..为什么Request.QueryString在某些情况下用空字符替换+?

但有没有引起任何问题吗?我的解决方案是用+替换空字符是否是所有情况下的最佳解决方案?

回答

5

因为+是空间" "的url编码表示形式。如果你想preseve的加号,你的价值,你需要URL编码是:

"/Page.aspx?data=" + HttpUtility.UrlEncode("sdf1+sdf") 

这将产生:

/Page.aspx?data=sdf1%2bsdf 

现在,当你阅读Request.QueryString["data"]你会得到你所期望的。

+0

谢谢darin .. – 2010-07-28 23:42:51

相关问题