【问题标题】:Request.QueryString - replacing + (plus) sign with spaceRequest.QueryString - 用空格替换 +(加号)符号
【发布时间】:2013-06-17 08:22:15
【问题描述】:

abcd.aspx?ST=f7aABcBdHIm7E8/0SAWKGtz8qKkhwNpJuZ+Jh+Jg+jg=&ET=d0698IjyKXsfkDDAmgy79kOd8+ONzX6IlgSrDME0QHw=

当我在 .cs 页面中使用以下代码时:

Request.QueryString["ST"]

返回值:

"f7aABcBdHIm7E8/0SAWKGtz8qKkhwNpJuZ Jh Jg jg="

它用空格字符(“”)替换了 + 号。

知道如何解决这个问题吗?

【问题讨论】:

标签: asp.net query-string


【解决方案1】:

+ 符号在查询字符串中具有语义含义。它用于表示空间。

Server.UrlEncode(Request.QueryString["ST"])

您可以使用Server.UrlEncode。空格 ( ) 转换为加号 (+)。

参考:http://msdn.microsoft.com/en-us/library/ms525738%28v=vs.90%29.aspx

【讨论】:

    【解决方案2】:

    为什么不试试这个

    在源链接用户下面的行

     Response.Redirect("Default2.aspx?ST="+ Server.UrlEncode(Server.HtmlEncode( "abc+xyz+lmn")));
    

    并且在目标页面用户跟随行

    Server.HtmlDecode( Request.QueryString["ST"]);
    

    这会解决你的问题

    【讨论】:

      【解决方案3】:

      我测试过了。它给出了正确的结果

      string cidEncode = Server.UrlEncode(Request.QueryString["CID"]);
      string cid = Regex.Replace(cidEncode, "%3d", "=", RegexOptions.IgnoreCase);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-23
        • 2011-12-13
        • 2012-08-17
        • 1970-01-01
        • 2014-04-17
        • 1970-01-01
        • 2015-05-10
        相关资源
        最近更新 更多