.NET Core'da WebUtility.HtmlDecode değişimi


91

.NET Core'da (MVC6) HTML karakterlerinin kodunu çözmem gerekiyor. Görünüşe göre .NET Core, daha önce herkesin bu amaçla kullandığı WebUtility.HtmlDecode işlevine sahip değil. .NET Core'da bir yedek var mı?



2
@duDE, .NET 4 yerine .NET Core istiyor.

Cevabıma bir bak. webutility.htmldecode'un .net çekirdeğindeki yerini HTTPputility.HtmlDecode olarak alır.

Yanıtlar:


115

Bu, System.Net.WebUtility sınıfındadır (.NET Standard 1.0'dan beri):

//
// 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);
}



4
.NET Core 2.1 için, Gerardo'nun aşağıdaki yanıtına bakın, başka bir nuget paketi yüklemenize gerek yoktur.
Vlad Iliescu

33

Bu Net Core 2.0'da

using System.Text.Encodings.Web;

ve ara:

$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(link)}'>clicking here</a>.");

GÜNCELLEME : Ayrıca .Net Core 2.1'de:

using System.Web;

HttpUtility.UrlEncode(code)
HttpUtility.UrlDecode(code)

HttpUtility.HtmlEncode ve HttpUtility.HtmlDecode yöntemleri de vardır.
xhafan

16

Çalışmak için WebUtility kitaplığında HtmlDecode işlevini buldum.

System.Net.WebUtility.HtmlDecode(string)

3

Referans eklemeniz gerekiyor System.Net.WebUtility.

  • Zaten .Net Core 2'ye dahil edilmiştir ( Microsoft.AspNetCore.All)

  • Veya NuGet'ten yükleyebilirsiniz - .Net Core 1 için önizleme sürümü.

Örneğin, kodunuz aşağıdaki gibi görünecek

public static string HtmlDecode(this string value)
{
     value = System.Net.WebUtility.HtmlDecode(value);
     return value;
}

3
Ya da WebUtility.HtmlDecodebir uzatma yöntemine sarmak için bir neden yok diye çağırın ...
Jamie Rees

3
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);
    }
}

Kod çözme veya kodlama için HttpUtility sınıfını kullanabilirsiniz .net core.

umarım işe yarar.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.