【问题标题】:why Request.QueryString replace + with empty char in some cases?为什么在某些情况下 Request.QueryString 用空字符替换 + ?
【发布时间】:2010-07-28 19:46:49
【问题描述】:

我有一个问题,如果我在查询字符串中传递一个包含 + 的字符串并尝试读取它,它会得到相同的字符串,但通过将 + 替换为空字符
例如,如果我通过../Page.aspx?data=sdf1+sdf 之类的查询,那么在页面加载中我通过data = Request.QueryString["data"] 读取data,它将得到如下data ="sdf1 sdf"
我通过用+ 替换任何空字符来解决问题。

但是有什么问题会导致这种情况吗?我的解决方案是用 + 替换空字符是所有情况下的最佳解决方案吗?

【问题讨论】:

    标签: c# asp.net query-string


    【解决方案1】:

    因为+ 是空间" " 的url 编码表示。如果您想在您的值中保留加号,则需要对其进行 url 编码:

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

    这将产生:

    /Page.aspx?data=sdf1%2bsdf
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多