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

标签 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 解码时产生

“this22help 后面应该有文字!”

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

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

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

最佳答案

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

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

可以看看here从安全角度了解有关空字节的更多信息。还有 this question也发布了它。

关于c# - System.Web.HttpUtility.UrlDecode 中是否存在错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51843797/

相关文章:

c# - httputility 在框架 3.5 的当前上下文中不存在

c# - .Net 4.5 无法识别 HttpUtility

ajax - 无法加载文件或程序集 'System.Web' 或其依赖项之一。

c# - 如何找到文本框文本的最后一个字符?

c# - C#中如何从DataGridView中获取选中的行内容?

sql-server - Url Decode T-SQL 函数未翻译超出 ascii 范围的字符

java - sun.net.www.ParseUtil.decode() 与 java.net.URLDecoder.decode()

c# - 获取 JSON 响应的选定值 c#

c# - 如何在 javascript asp.net c# 中检查日期和时间?

python:关于url编码和解码