为什么HttpUtility.UrlPathEncode标记为"不使用"?

Deh*_*ion 8 .net asp.net urlencode url-encoding

为什么.NET for HttpUtility.UrlPathEncode for .NET 4.5 的文档说明

不使用; 仅用于浏览器兼容性.使用UrlEncode.

UrlEncode不会这样做,它为URL的参数部分编码字符串,而不是路径部分.有没有更好的方法来编码路径部分的字符串,为什么我不应该使用这个函数,这是在1.1以后的框架中工作?

Hus*_*lil 2

根据MSDN,他们建议使用 UrlEncode 来保证它适用于所有平台和浏览器

您可以使用 UrlEncode 方法或 UrlPathEncode 方法对 URL 进行编码。但是,这些方法返回不同的结果。UrlEncode 方法将每个空格字符转换为加号字符 (+)。UrlPathEncode 方法将每个空格字符转换为字符串“%20”,该字符串以十六进制表示法表示一个空格。对 URL 的路径部分进行编码时,请使用 UrlPathEncode 方法,以保证解码后的 URL 一致,无论哪个平台或浏览器执行解码。

此外,UrlEncode 使用 UTF-8 编码,因此如果您以不同语言(例如阿拉伯语)发送查询字符串,则应该使用 UrlEncode