首页 > 其他分享 >Uri.EscapeDataString 和 Server.UrlEncoding 的区别

Uri.EscapeDataString 和 Server.UrlEncoding 的区别

时间:2024-05-17 14:55:33浏览次数:24  
标签:UrlEncode Web URL Uri Server EscapeDataString UrlEncoding

今天在iis中访问一个即含有空格又含有#的文件名时,通过 iis 直接访问都无法到达,显示404,即便是 urlencode 文件名后依然无济于事,最后通过 gpt 问到了答案。

Uri.EscapeDataStringServer.UrlEncode是.NET Framework中用于URL编码的两个方法,它们有以下区别:

  1. 命名空间和所属类:Uri.EscapeDataString方法位于System命名空间下的Uri类中,而Server.UrlEncode方法位于System.Web命名空间下的HttpServerUtility类中。因此,Uri.EscapeDataString可以在任何.NET应用程序中使用,而Server.UrlEncode主要用于Web应用程序。

  2. 编码范围:Uri.EscapeDataString方法对所有非保留字符进行编码,包括URL路径中的斜杠(/)和查询字符串中的等号(=)。而Server.UrlEncode方法只对特定的字符进行编码,例如空格(空格被编码为+)和查询字符串中的保留字符(如=&?等)。

  3. 编码方式:Server.UrlEncode方法将空格编码为+符号,而Uri.EscapeDataString方法将空格编码为%20。这意味着在处理查询字符串时,Server.UrlEncode相对于Uri.EscapeDataString更适合,因为大多数服务器端语言(如ASP.NET)会自动将+解码为空格。

  4. 使用场景:Uri.EscapeDataString方法更通用,可以在各种情况下使用,包括生成URL、构建查询字符串等。Server.UrlEncode方法主要用于ASP.NET Web应用程序中,对于在Web环境下处理URL和查询字符串时更常见。

综上所述,选择使用哪个方法取决于具体的使用场景和需求。一般来说,如果是在Web应用程序中处理URL和查询字符串,优先考虑使用Server.UrlEncode方法。如果需要在非Web环境下进行URL编码,可以使用Uri.EscapeDataString方法。

标签:UrlEncode,Web,URL,Uri,Server,EscapeDataString,UrlEncoding
From: https://www.cnblogs.com/nanfei/p/18197770

相关文章

  • spring security 使用过滤器认证登录时,抛出自定义异常
    前情提要最近在做项目的改造,涉及到新增用户的离职冻结状态,当被离职/冻结后,尝试登录系统,则抛出不同的异常代码给前端,前端依据不同的异常代码提示不同的文本。所以需要对项目的认证逻辑简单调整,增加按照不同的登录用户的状态(离职/冻结)判断,如果满足指定状态,则抛出对应的异常代码。......
  • 宝塔:续签SSL证书报错error_result: During secondary validation
    宝塔上的SSL证书有时候忘了到期前续签,导致续签时候报错:error_result:Duringsecondaryvalidation:或者 该帐户1小时内失败的订单次数超过5次,请等待1小时再重试! 点击SSL当前证书,续签证书处理,是无效的。因此要换种方式: 解决方法如下:1.点击SSL选项框内的“证书夹”选项,删......
  • C#中的System.Security.SecureString学习
    有一次在公司review代码时,有一个password的字段,原来用的是String类型,有同事提到应该用SecureString比较好于是我花了点时间了解了一下什么是SecureString,以及它与String类型的区别正常的String类型值,在脱离开作用域后,它的值在内存中并不会立即被销毁.这个时候,如果有人恶意扫......
  • 2024CVPR_Low-light Image Enhancement via CLIP-Fourier Guided Wavelet Diffusion(C
    一、Motivation1、单模态监督问题:大多数方法往往只考虑从图像层面监督增强过程,而忽略了图像的详细重建和多模态语义对特征空间的指导作用。这种单模态监督导致不确定区域的次优重建和较差的局部结构,导致视觉结果不理想的出现。------》扩散模型缺乏有效性约束,容易出现多种生成效......
  • 解决远程调用三方接口:javax.net.ssl.SSLHandshakeException:sun.security.validator.Va
    一、前言最近在对接腾讯会议API接口,在鉴权完成后开始调用对方的接口,在此过程中出现调用报错:javax.net.ssl.SSLHandshakeException。二、出现原因当你在进行https请求时,JDK中不存在三方服务的信任证书,导致出现错误javax.net.ssl.SSLHandshakeException:sun.security.validator.Va......
  • 交互式应用安全测试(Interactive application security testing IAST)
    一、IAST介绍 交互式应用安全测试(InteractiveapplicationsecuritytestingIAST)是一个在应用和API中自动化识别和诊断软件漏洞的技术。如果从名字的缩写来看,插桩(Instrumented)式应用安全测试或许是一个更好的说法。IAST不是一个扫描器,IAST持续地从内部监控你应用中的漏洞,在整个......
  • 13、LAMP SecurityCTF5(VulnHub)
    LAMPSecurityCTF5一、nmapcatports|grepopen|awk-F'/''{print$1}'|tr'\n'','catports|grepopen|awk-F'/''{print$1}'|paste-sd','>nmap_open_port_total.txt......
  • 开源IDS/IPS Suricata的部署与使用
    目录前言在Linux上部署SuricataSuricata的基本配置配置文件Suricata的规则Suricata的使用Suricata检测SQL注入前言Suricata是一个高性能的网络入侵检测和防御系统(IDS/IPS)。它是由OISF开发,完全开源,并且可以免费使用。Suricata和Snort的区别,有什么优势?Snort也是一个开源的ID......
  • eve设置tokenuri支持
    设置tokenuri支持:增加3个方法实现就行 参考文档:https://hackernoon.com/zh/理解以太坊中的代币标准第二部分erc721ipfs的链接如何上传?721合约是一个标准,还是完整的代码实现?基于接口实现?    functionsetTokenURI(uint256tokenId,stringmemory_tokenURI)exte......
  • 启发式评估(Heuristic Evaluation)--转载 [2011.12.13 sina blog]
    启发式评估(HeuristicEvaluation) -[一架好书--读书学习的收获]2008年08月07日分类: 一架好书--读书学习的收获  版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://buyantang.blogbus.com/logs/27286224.htmlUsabilityInspectionMethods,Edit......