我有一个问题,如果我在查询字符串中传递一个包含 +
的字符串并尝试读取它,它会得到相同的字符串,但将 + 替换为空字符
例如,如果我传递像 ../Page.aspx?data=sdf1+sdf
这样的查询,那么在页面加载中我通过 data = Request.QueryString[ 读取
它将得到如下 data
"data"]data ="sdf1 sdf"
我通过用 +
..
但是有什么问题导致这个吗?我用 + 替换空字符的解决方案是否是所有情况下的最佳解决方案?
最佳答案
因为+
是空格""
的url编码表示。如果您想在值中保留加号,则需要对其进行 url 编码:
"/Page.aspx?data=" + HttpUtility.UrlEncode("sdf1+sdf")
这将产生:
/Page.aspx?data=sdf1%2bsdf
现在,当您阅读 Request.QueryString["data"]
时,您将得到您所期望的结果。
关于c# - 为什么在某些情况下 Request.QueryString 将 + 替换为空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356829/