.NET Core에서 WebUtility.HtmlDecode 대체


91

.NET Core (MVC6)에서 HTML 문자를 디코딩해야합니다. .NET Core에는 이전에 모두가 그 목적으로 사용했던 WebUtility.HtmlDecode 함수가없는 것 같습니다. .NET Core에 대체가 있습니까?



2
@duDE, 그는 오히려 .NET 4.보다 .NET 핵심을 요구하고있다

내 대답을보세요. .net 코어의 webutility.htmldecode를 httputility.HtmlDecode로 대체합니다.

답변:


116

이것은 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);
}



4
.NET Core 2.1의 경우 아래 Gerardo의 응답을 참조하세요. 다른 nuget 패키지를 설치할 필요가 없습니다.
Vlad Iliescu

33

이것은 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)

HttpUtility.HtmlEncode 및 HttpUtility.HtmlDecode 메서드도 있습니다.
xhafan 19

16

WebUtility 라이브러리에서 HtmlDecode 함수가 작동하는 것을 발견했습니다.

System.Net.WebUtility.HtmlDecode(string)

3

참조를 추가해야합니다 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;
}

3
아니면 그냥 전화 WebUtility.HtmlDecode확장 방법을 포장 할 이유가 ... 없다
제이미리스

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

디코딩 또는 인코딩 HttpUtility.net core위해 class in 을 사용할 수 있습니다 .

그것이 효과가 있기를 바랍니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.