System.Web.HttpUtility.UrlDecode 中有错误吗?

Is there a bug in System.Web.HttpUtility.UrlDecode?

考虑以下代码行:

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

编码行

"There%20should%20be%20text%20after%20this%0022help!" 

通过网站解码时 urldecoder.org 生成

"There should be text after this22help!"

但是调试器中显示的 _decoded 值是: Figure 1: Debugger view of problem

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

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

this 后有一个空字节 ([=10=] = %00),因此调试器不会显示字符串的其余部分。

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

您也可以看看 here for more info about null byte from security perspective. And there is this question 发布的相关信息。