it-swarm-eu.dev

Jak mohu dekódovat HTML znaky v C #?

Mám e-mailové adresy kódované entitami HTML. Existuje něco. NET, který může převést na prosté řetězce?

359
Vasil

Můžete použít HttpUtility.HtmlDecode

Pokud používáte .NET 4.0+, můžete také použít WebUtility.HtmlDecode který nevyžaduje další odkaz na sestavu, protože je k dispozici v oboru názvů System.Net.

580
Quintin Robinson

Na .Net 4.0:

System.Net.WebUtility.HtmlDecode()

Není třeba zahrnout sestavení pro projekt C #

181
Indy9000

Jak říká @ CQ, musíte použít HttpUtility.HtmlDecode , ale ve výchozím nastavení není k dispozici v projektu bez ASP .NET.

Pro aplikaci, která není ASP .NET, je třeba přidat odkaz na System.Web.dll. Klepněte pravým tlačítkem myši na projekt v aplikaci Solution Explorer, vyberte "Přidat odkaz" a potom vyhledejte seznam System.Web.dll.

Nyní, když je odkaz přidán, byste měli mít možnost přistupovat k metodě pomocí plně kvalifikovaného názvu System.Web.HttpUtility.HtmlDecode nebo vložit příkaz using pro System.Web, abyste to usnadnili.

42
OwenP

Pokud neexistuje serverový kontext (tj. Váš offline provoz), můžete použít HttpUtility . HtmlDecode .

16
Rob Cooper

Pomocí Server.HtmlDecode dekódujte entity HTML. Pokud chcete uniknout HTML, tj. Zobrazit znak < a > uživateli, použijte Server.HtmlEncode.

6

Chcete-li dekódovat kód HTML, podívejte se níže

string s = "Svendborg V&#230;rft A/S";
string a = HttpUtility.HtmlDecode(s);
Response.Write(a);

Výstup je jako

 Svendborg Værft A/S
6
Abhishek Jaiswal

Za zmínku stojí také to, že pokud používáte HtmlAgilityPack jako já, měli byste použít HtmlAgilityPack.HtmlEntity.DeEntitize(). Trvá string a vrací string.

5
Hypershadsy

Zapište statickou metodu do některé třídy utilit, která přijme řetězec jako parametr a vrátí dekódovaný řetězec html.

Zahrnout using System.Web.HttpUtility do vaší třídy

public static string HtmlEncode(string text)
    {
        if(text.length > 0){

           return HttpUtility.HtmlDecode(text);
        }else{

         return text;
        }

    }
1
Tahir Alvi

Pro síť .net 4,0

Přidejte odkaz na System.net.dll do projektu s using System.Net; a použijte následující rozšíření

// Html encode/decode
    public static string HtmDecode(this string htmlEncodedString)
    {
        if(htmlEncodedString.Length > 0)
        {
            return System.Net.WebUtility.HtmlDecode(htmlEncodedString);
        }
        else
        {
            return htmlEncodedString;
        }
    }

    public static string HtmEncode(this string htmlDecodedString)
    {
        if(htmlDecodedString.Length > 0)
        {
            return System.Net.WebUtility.HtmlEncode(htmlDecodedString);
        }
        else
        {
            return htmlDecodedString;
        }
    }
0
Vinod Srivastav