System.Web.HttpUtility.UrlDecode中是否存在错误?

时间:2018-08-14 14:26:56

标签: c# urldecode system.web

请考虑以下代码行:

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

编码行

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

通过urldecoder.org网站进行解码时产生

“此22帮助后面应该有文字!”

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

什么可能导致此问题?是否有设置或特殊编码可以在所有情况下规避?

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

1 个答案:

答案 0 :(得分:5)

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

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

从安全的角度来看,您可以查看here以获得有关空字节的更多信息。与此同时,也发布了this question