URL 解码器 c# asp.net

URL Decoder c# asp.net

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

...u4w51EEcg8%2bj04e7C....

当我使用HttpUtility.UrlDecode时,代表“+”的“%2b”部分变成了白色space。 我首先使用 HttpUtility.UrlEncode 对字符串进行编码。

有人知道发生了什么事吗?

看起来 "Request.QueryString[]" 解码了它得到的任何内容,所以我对查询字符串解码了 2 次,这使得“+”变成了空格。

你是在解码两次吗?为方便起见,URL 中的 + 符号解码为 </code> (space, 0x20)。虽然 <code>%2b 应该解码为 +,但解码后会得到 .

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