【问题标题】:URL Decoder c# asp.netc# asp.net URL解码器
【发布时间】:2016-01-12 02:49:12
【问题描述】:

QueryString 中我有一个看起来像这样的部分

...u4w51EEcg8%2bj04e7C....

当我使用 HttpUtility.UrlDecode 时,代表“+”的部分“%2b”会变成一个空格。 我首先使用 HttpUtility.UrlEncode 对字符串进行编码。

有人知道发生了什么吗?

【问题讨论】:

    标签: c# url query-string


    【解决方案1】:

    你要解码两次吗?为方便起见,URL 中的+ 登录会解码为(空格,0x20)。虽然%2b 应该解码为+,但解码后会得到

    编辑:刚刚看到您的自我回答,是的,请始终检查您的 getter 函数/属性是否自动为您解码。双重解码通常不会产生预期的结果,甚至会导致安全风险。

    【讨论】:

      【解决方案2】:

      看起来“Request.QueryString[]”会解码它得到的任何东西,所以发生的事情是我将 QueryString 解码了 2 次,这使得“+”成为一个空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-22
        • 1970-01-01
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        • 2015-11-02
        • 1970-01-01
        • 2019-06-01
        相关资源
        最近更新 更多