HttpContext.Current.Server.UrlEncode
这只在.NET Framework 中有效。如何在 ASP.NET 核心中对 URI 参数进行编码或解码?
对于 ASP.NET Core 2.0 + ,只需添加 System.Net名称空间-WebUtility类作为 System.Runtime.Extensions nuget 包的一部分发布,这是 ASP.NET Core 项目中默认引用的。
System.Net
WebUtility
System.Runtime.Extensions
对于以前的版本添加 Microsoft.AspNetCore.WebUtilities核心包。
Microsoft.AspNetCore.WebUtilities
然后,WebUtility课程将为您提供:
public static class WebUtility { public static string UrlDecode(string encodedValue); public static string UrlEncode(string value); }
它可在 .Net Core SDK 的2.0版本,在 System.Net.WebUtility.UrlEncode(请参阅文件)
System.Net.WebUtility.UrlEncode
不要浪费你的时间,我有很多经验,这些所谓的网址编码器,他们都是无用的,有不同的怪癖。例如网络实用工具。UrlEncode 不处理“ +”符号。
如果要对 URL 参数进行编码,请使用 BASE58编码。它只使用字母 + 数字,因此你不需要网址编码。
对于 ASP.Net Core 2.0 + ,如果需要将空格编码为 %20
%20
而不是 +;
+
用途:
Uri.EscapeDataString(someString);
我使用的是 再次询问,UrlEncode 对我不起作用,因为它对整个 URL 进行编码。我用 UriHelper 解决了这个问题。编码,如下所示。
UriHelper 编码
// generate url string... return Redirect(Microsoft.AspNetCore.Http.Extensions.UriHelper.Encode(new System.Uri(url)));
只是在这个组合中加入了另一种方法:
UrlEncoder.Default.Encode(url);
Https://learn.microsoft.com/en-us/dotnet/api/system.text.encodings.web.urlencoder?view=net-6.0