代码之家  ›  专栏  ›  技术社区  ›  Amr Badawy

在某些情况下,为什么Request.QueryString会将+替换为空字符?

  •  2
  • Amr Badawy  · 技术社区  · 14 年前

    我有一个问题,如果我传递一个包含 +
    例如,如果我像这样传递查询 ../Page.aspx?data=sdf1+sdf 然后在页面加载中我读到 data 通过 data = Request.QueryString["data"] data ="sdf1 sdf"
    我通过将任何空字符替换为 + ..

    1 回复  |  直到 14 年前
        1
  •  5
  •   Darin Dimitrov    14 年前

    因为 + 是空间的url编码表示 " "

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

    这将产生:

    /Page.aspx?data=sdf1%2bsdf
    

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