为什么用于.NET 4.5的HttpUtility.UrlPathEncode .NET的文档说明
不要使用;仅用于浏览器兼容性。使用UrlEncode。
UrlEncode不会这样做,它会为URL的参数部分编码字符串,而不是路径部分。有没有更好的方法来为路径部分编码字符串,为什么我不应该使用这个函数,这在1.1以后的框架中有用吗?
答案 0 :(得分:2)
基于MSDN,他们建议使用UrlEncode授权它适用于所有平台和浏览器
您可以使用UrlEncode方法或UrlPathEncode方法对网址进行编码。但是,这些方法会返回不同的结果。 UrlEncode方法将每个空格字符转换为加号字符(+)。 UrlPathEncode方法将每个空格字符转换为字符串"%20",它表示十六进制表示法的空格。在对URL的路径部分进行编码时使用UrlPathEncode方法,以保证解码的URL一致,无论哪个平台或浏览器执行解码。
此外,UrlEncode正在使用UTF-8编码,因此如果您使用不同语言(如阿拉伯语)发送查询字符串,则应使用UrlEncode
答案 1 :(得分:0)
如果要编码URL的路径,请使用Uri.EscapeUriString
。 HttpUtility.UrlEncode
用于查询参数,并且也对路径进行斜杠编码。