Soru C # içindeki HTML karakterlerini nasıl çözebilirim?


HTML karakter varlıkları ile kodlanmış e-posta adreslerim var. .NET'te bunları düz dizelere dönüştürebilecek bir şey var mı?


343
2017-09-23 18:01


Menşei




Cevaplar:


Kullanabilirsiniz HttpUtility.HtmlDecode

.NET 4.0+ kullanıyorsanız, ayrıca kullanabilirsiniz WebUtility.HtmlDecode mevcut olduğu gibi ekstra montaj referansı gerektirmez System.Net ad.


548
2017-09-23 18:02



System.Web'de olması gerekiyordu, ama değil. Daha fazla bir yıl boyunca C # 'ye dokunmadım, eğer biraz daha sinirlendiğimde bunları el ile değiştireceğim. - Vasil
System.Web'in .NET 2.0 sürümünde var. - Mark Cidade
System.Web kullanıyorum. Benim bağlamımda ad alanının yalnızca bazı AspPermission sınıfları var. - Vasil
Proje özelliklerinde System.Web.Dll için bir başvuru ekleyin. Varsayılan olarak başvurulan System.dll dosyasında gördüğünüz sınıflar. - OwenP
Sorgu dizesini çözmeyi denediğinizde, kullanmanız gerekir. HttpUtility.UrlDecode - PeterX


Açık. Net 4.0:

System.Net.WebUtility.HtmlDecode()

C # projesi için montaj eklemenize gerek yok


177
2018-04-14 17:40



Daha iyi bir çözümdür çünkü HttpUtility "& quot; sembol .. neden bilmiyorum .. - RredCat
Bu, Evrensel Windows platformu için geliştirilmesinde gereklidir. - matthewsheets


@CQ'nun dediği gibi, kullanmanız gerekir HttpUtility.HtmlDecodeAncak, ASP olmayan bir ASP.NET projesinde varsayılan olarak kullanılamaz.

ASP olmayan bir .NET uygulaması için, bir başvuru eklemeniz gerekir. System.Web.dll. Çözüm Gezgini'nde projenizi sağ tıklayın, "Referans Ekle" yi seçin, ardından listeye göz atın. System.Web.dll.

Artık referans eklendiğinde, tam nitelikli adı kullanarak yönteme erişebilmeniz gerekir. System.Web.HttpUtility.HtmlDecode veya ekleyin using ifadesi System.Web işleri kolaylaştırmak için.


41
2017-09-23 18:29





Sunucu bağlamı yoksa (yani çevrimdışı çalışıyorsanız) kullanabilirsiniz. HttpUtility.HtmlDecode.


15
2017-09-23 18:04



Bu yüzden HttpUtility'i kullanıyorum, aynı tuzağa düştüm. - Quintin Robinson


kullanım Server.HtmlDecode HTML öğelerini deşifre etmek için Eğer istersen kaçış HTML, yani < ve > kullanıcıya karakter, kullan Server.HtmlEncode.


6
2017-09-23 18:02



Bir sunucu bağlamı olmayabilir (yani, test senaryolarını ve benzerlerini çalıştırırken). Bu tuzağa düşmeden önce :) - Rob Cooper


HtmlAgilityPack'i kullandığım gibi kullanmanız gerektiğini de belirtmek gerekir. HtmlAgilityPack.HtmlEntity.DeEntitize(). Bir alır string ve bir döndürür string.


4
2018-06-25 03:36





HTML kodunu çözmek için kodun altında bir göz atın

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

Çıkış gibi

 Svendborg Værft A/S

3
2017-11-17 10:01



HtmlDecode bir dize döndürdüğünden 'ToString ()' gereksizdir - Justin


Diziyi parametre olarak kabul eden ve kodu çözülen html dizesini döndüren bazı yardımcı sınıflara statik bir yöntem yazın.

Dahil et using System.Web.HttpUtility sınıfına

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

           return HttpUtility.HtmlDecode(text);
        }else{

         return text;
        }

    }

1
2018-05-25 09:34