Он работает только в.NET Framework. Как я могу кодировать или декодировать аргументы uri в проекте ASP.NET Core?
Ответ 1
Для ASP.NET Core 2. 0+ просто добавьте пространство имен System.Net - класс WebUtility отправляется как часть пакета System.Runtime.Extensions nuget, который по умолчанию упоминается в проекте ASP.NET Core.
Для предыдущей версии добавьте пакет Microsoft.AspNetCore.WebUtilities nuget.
Тогда класс WebUtility будет доступен для вас:
public static class WebUtility
{
public static string UrlDecode(string encodedValue);
public static string UrlEncode(string value);
}
Для ASP.Net Core 2. 0+, и если вам нужны пробелы, которые будут закодированы как %20
в отличие от +;
Использование:
Uri.EscapeDataString(someString);
Ответ 4
Не тратьте впустую свое время, у меня есть много опыта с этими так называемыми энкодерами URL, они бесполезны и имеют разные причуды. Например, WebUtility.UrlEncode не заботится о знаке "+".
Если вы хотите кодировать параметры URL, используйте кодировку BASE58. Он использует только буквы алфавита + цифры, поэтому вам не нужно кодировать URL.
Ответ 5
Я использую перенаправление, и UrlEncode не работает для меня, потому что он кодирует весь URL. Я решил это, вместо этого используя UriHelper.Encode, как показано ниже.