Мне нужно декодировать символы HTML в .NET Core (MVC6). Похоже, что в .NET Core нет функции WebUtility.HtmlDecode, которую все раньше использовали для этой цели. Есть ли замена в .NET Core?
c#
.net
asp.net-core
asp.net-core-mvc
сибвич
источник
источник
Ответы:
Это в классе System.Net.WebUtility (начиная с .NET Standard 1.0):
// // Summary: // Provides methods for encoding and decoding URLs when processing Web requests. public static class WebUtility { public static string HtmlDecode(string value); public static string HtmlEncode(string value); public static string UrlDecode(string encodedValue); public static byte[] UrlDecodeToBytes(byte[] encodedValue, int offset, int count); public static string UrlEncode(string value); public static byte[] UrlEncodeToBytes(byte[] value, int offset, int count); }
источник
Это в Net Core 2.0
using System.Text.Encodings.Web;
и назовите это:
$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(link)}'>clicking here</a>.");
ОБНОВЛЕНИЕ : Также в .Net Core 2.1:
using System.Web; HttpUtility.UrlEncode(code) HttpUtility.UrlDecode(code)
источник
Я обнаружил, что функция HtmlDecode в библиотеке WebUtility работает.
System.Net.WebUtility.HtmlDecode(string)
источник
Вам нужно добавить ссылку
System.Net.WebUtility
.Он уже включен в .Net Core 2 (
Microsoft.AspNetCore.All
)Или вы можете установить из NuGet - предварительная версия для .Net Core 1.
Итак, ваш код будет выглядеть, как показано ниже
public static string HtmlDecode(this string value) { value = System.Net.WebUtility.HtmlDecode(value); return value; }
источник
WebUtility.HtmlDecode
, нет причин заключать это в метод расширения ...namespace System.Web { // // Summary: // Provides methods for encoding and decoding URLs when processing Web requests. // This class cannot be inherited. public sealed class HttpUtility { public HttpUtility(); public static string HtmlAttributeEncode(string s); public static void HtmlAttributeEncode(string s, TextWriter output); public static string HtmlDecode(string s); public static void HtmlDecode(string s, TextWriter output); public static string HtmlEncode(string s); public static string HtmlEncode(object value); public static void HtmlEncode(string s, TextWriter output); public static string JavaScriptStringEncode(string value); public static string JavaScriptStringEncode(string value, bool addDoubleQuotes); public static NameValueCollection ParseQueryString(string query); public static NameValueCollection ParseQueryString(string query, Encoding encoding); public static string UrlDecode(string str, Encoding e); public static string UrlDecode(byte[] bytes, int offset, int count, Encoding e); public static string UrlDecode(string str); public static string UrlDecode(byte[] bytes, Encoding e); public static byte[] UrlDecodeToBytes(byte[] bytes, int offset, int count); public static byte[] UrlDecodeToBytes(string str, Encoding e); public static byte[] UrlDecodeToBytes(byte[] bytes); public static byte[] UrlDecodeToBytes(string str); public static string UrlEncode(string str); public static string UrlEncode(string str, Encoding e); public static string UrlEncode(byte[] bytes); public static string UrlEncode(byte[] bytes, int offset, int count); public static byte[] UrlEncodeToBytes(string str); public static byte[] UrlEncodeToBytes(byte[] bytes); public static byte[] UrlEncodeToBytes(string str, Encoding e); public static byte[] UrlEncodeToBytes(byte[] bytes, int offset, int count); [Obsolete("This method produces non-standards-compliant output and has interoperability issues. The preferred alternative is UrlEncode(String).")] public static string UrlEncodeUnicode(string str); [Obsolete("This method produces non-standards-compliant output and has interoperability issues. The preferred alternative is UrlEncodeToBytes(String).")] public static byte[] UrlEncodeUnicodeToBytes(string str); public static string UrlPathEncode(string str); } }
Вы можете использовать
HttpUtility
class in.net core
для декодирования или кодирования.надеюсь, что это сработает.
источник
HtmlDecode
и большинство*Decode
методов не были перенесены на CoreFx.*Encode
Доступны только методы.Вот то, что доступно сегодня: https://github.com/dotnet/corefx/blob/1dfe38aeb2811fbbd6d4de36d210f060e80d50a6/src/System.Text.Encodings.Web/src/System/Text/Encodings/Webcoder.Html
источник