我遇到一个问题,如果我在查询字符串中传递一个包含+
的字符串并尝试读取它,它会获得相同的字符串但是用空字符替换+
例如,如果我通过../Page.aspx?data=sdf1+sdf
之类的查询,那么在页面加载中,我会在data
之后阅读data = Request.QueryString["data"]
,它将在data ="sdf1 sdf"
下方生成
我通过用+
..
但是否有任何问题导致这种情况?在所有情况下,用+替换空char是我最好的解决方案吗?
答案 0 :(得分:5)
因为+
是空间" "
的网址编码表示。如果你想在你的值中预先加上加号,你需要对其进行url编码:
"/Page.aspx?data=" + HttpUtility.UrlEncode("sdf1+sdf")
将产生:
/Page.aspx?data=sdf1%2bsdf
现在,当您阅读Request.QueryString["data"]
时,您将得到您期望的结果。