System.Web.HttpUtility.UrlDecode中是否有错误?

use*_*232 3 c# urldecode system.web

考虑以下代码行:

string _decoded = System.Web.HttpUtility.UrlDecode(
  "There%20should%20be%20text%20after%20this%0022help!");
Run Code Online (Sandbox Code Playgroud)

编码的行

"There%20should%20be%20text%20after%20this%0022help!" 
Run Code Online (Sandbox Code Playgroud)

当通过urldecoder.org网站解码产生

"在这之后应该有文字!"

但是,调试器中显示的_decoded值如下: 图1:问题的调试器视图

什么可能导致这个问题?是否有设置或特殊编码可以在所有情况下绕过这种情况?

编辑:是的,我认为这种行为是一个错误.我不希望URLDecode将\ 0 char引入结果字符串,因为它会导致文件名无效(我的代码正在移动文件).

Sel*_*enç 5

之后有一个空字节(\0=%00),this因此调试器不显示字符串的其余部分.

所以解码后的值是正确的,它只是调试器的限制(或错误?).

从安全角度来看,您可以在这里查看有关空字节的更多信息.并且还有关于它的问题.