gpt4 book ai didi

asp.net - Server.UrlEncode 与 HttpUtility.UrlEncode

转载 作者:行者123 更新时间:2023-12-03 04:15:42 27 4
gpt4 key购买 nike

Server.UrlEncode 和 HttpUtility.UrlEncode 之间有区别吗?

最佳答案

我之前对这些方法感到非常头疼,我建议您避免 UrlEncode 的任何变体,而是使用 Uri.EscapeDataString - 至少有一种可以理解的行为。

让我们看看...

HttpUtility.UrlEncode(" ") == "+" //breaks ASP.NET when used in paths, non-
//standard, undocumented.
Uri.EscapeUriString("a?b=e") == "a?b=e" // makes sense, but rarely what you
// want, since you still need to
// escape special characters yourself

但我个人最喜欢的是HttpUtility.UrlPathEncode - 这东西实在是难以理解。它编码:

  • ""==> "%20"
  • “100% true”==>“100%%20true”(好的,您的网址现在已损坏)
  • “测试A.aspx#anchor B”==>“测试%20A.aspx#anchor%20B
  • "test A.aspx?hmm#anchor B"==> "test%20A.aspx?hmm#anchor B"(注意与之前转义序列的区别!)

它还有可爱的特定 MSDN 文档“对 URL 字符串的路径部分进行编码,以便从 Web 服务器到客户端进行可靠的 HTTP 传输”。 - 没有实际解释它的作用。你不太可能用乌兹冲锋枪搬起石头砸自己的脚……

简而言之,坚持 Uri.EscapeDataString

关于asp.net - Server.UrlEncode 与 HttpUtility.UrlEncode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com