.NETCoreでのWebUtility.HtmlDecodeの置換


91

.NET Core(MVC6)でHTML文字をデコードする必要があります。.NET Coreには、以前は誰もがその目的で使用していたWebUtility.HtmlDecode関数がないようです。.NET Coreに代替品はありますか?


1
ご覧

2
彼は、.NETのコアではなく、.NET 4を@duDE求めている

私の答えを見てください。これは、.netコアのwebutility.htmldecodeをhttputility.HtmlDecodeとして置き換えたものです。

回答:


115

これは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);
}


8
.NET Core 1.1の場合は、nuget.org
packages /

4
.NET Core 2.1については、以下のGerardoの応答を参照してください。別のnugetパッケージをインストールする必要はありません。
Vlad Iliescu 2018

33

これはNetCore2.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

16

WebUtilityライブラリのHtmlDecode関数が機能することがわかりました。

System.Net.WebUtility.HtmlDecode(string)

3

参照を追加する必要がありますSystem.Net.WebUtility

  • すでに.NetCore 2に含まれています(Microsoft.AspNetCore.All

  • または、NuGetからインストールすることもできます-.Net Core1のプレビューバージョン。

たとえば、コードは次のようになります

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

3
またはWebUtility.HtmlDecode、拡張メソッドでラップする理由がないことを呼び出すだけです...
JamieRees18年

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、デコードまたはエンコードに。

それがうまくいくことを願っています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.