【问题标题】:ASP.NET URL Encoding/DecodingASP.NET URL 编码/解码
【发布时间】:2011-07-12 19:33:19
【问题描述】:

我有两个文件 htmlpage1.htm 和 webform1.aspx

htmlpage1.htm 包含一个带有 href="webform1.aspx?name=abc+xyz" 的锚标记。

当我尝试访问 webform1.aspx 的 page_load 中的查询字符串时,我得到“abc xyz”(abc [space] xyz)。我想要查询字符串“abc+xyz”中的确切值

注意: href 值不能更改

任何帮助将不胜感激

谢谢。

【问题讨论】:

    标签: asp.net url encoding decoding


    【解决方案1】:

    这将为您提供 Server.UrlDecode:

    Request.QueryString["name"] // "abc xyz"
    

    选项1)您可以重新编码

    Server.UrlEncode(Request.QueryString["name"]); // "abc+xyz"
    

    或获取原始查询数据

    Request.Url.Query // "?name=abc+xyz"
    

    选项2)然后解析值

    Request.Url.Query.Substring(Request.Url.Query.IndexOf("name=") + 5) // "abc+xyz"
    

    【讨论】:

      【解决方案2】:

      ASP.net 将为您解码查询字符串。如果需要,您可以获取原始查询字符串并自行解析。

      【讨论】:

        【解决方案3】:

        试试webform1.aspx?name=abc%2Bxyz

        【讨论】:

        • @Faizal 在这种情况下,如果您不希望 name 查询参数中有空格,只需将空格替换为 +
        【解决方案4】:

        使用这个:
        Request.QueryString["name"].Replace("","+");
        // 更多信息请参考以下链接
        http://runtingsproper.blogspot.in/2009/10/why-aspnet-accidentally-corrupts-your.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-20
          • 2011-08-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-09
          • 1970-01-01
          相关资源
          最近更新 更多