Odpowiedzi:
Możesz użyć HttpUtility.HtmlDecode
Jeśli korzystasz z .NET 4.0+, możesz również użyć, WebUtility.HtmlDecode
który nie wymaga dodatkowego odwołania do zestawu, ponieważ jest on dostępny w System.Net
przestrzeni nazw.
HttpUtility.UrlDecode
W .Net 4.0:
System.Net.WebUtility.HtmlDecode()
Nie ma potrzeby dołączania zestawu dla projektu w języku C #
Jak mówi @CQ, musisz użyć HttpUtility.HtmlDecode , ale domyślnie nie jest dostępny w projekcie .NET ASP.
W przypadku aplikacji bez platformy ASP .NET należy dodać odwołanie do System.Web.dll
. Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań, wybierz „Dodaj odniesienie”, a następnie przejrzyj listę System.Web.dll
.
Po dodaniu odwołania powinno być możliwe uzyskanie dostępu do metody przy użyciu w pełni kwalifikowanej nazwy System.Web.HttpUtility.HtmlDecode
lub wstawienie using
instrukcji System.Web
ułatwiającej.
Jeśli nie ma kontekstu serwera (tzn. Działa w trybie offline), możesz użyć HttpUtility . HtmlDecode .
Służy Server.HtmlDecode
do dekodowania encji HTML. Jeśli chcesz uciec od HTML, tj. Wyświetlić znak <
i >
dla użytkownika, użyj Server.HtmlEncode
.
Aby zdekodować HTML, spójrz poniżej kodu
string s = "Svendborg Værft A/S";
string a = HttpUtility.HtmlDecode(s);
Response.Write(a);
Wyjście jest jak
Svendborg Værft A/S
Warto również wspomnieć, że jeśli używasz HtmlAgilityPack tak jak ja, powinieneś użyć HtmlAgilityPack.HtmlEntity.DeEntitize()
. Trwa string
i zwraca a string
.
Napisz metodę statyczną do jakiejś klasy narzędzia, która akceptuje ciąg jako parametr i zwraca zdekodowany ciąg html.
Uwzględnij using System.Web.HttpUtility
w swojej klasie
public static string HtmlEncode(string text)
{
if(text.length > 0){
return HttpUtility.HtmlDecode(text);
}else{
return text;
}
}
Dla .net 4.0
Dodaj odniesienie do System.net.dll
projektu, a using System.Net;
następnie użyj następujących rozszerzeń
// 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;
}
}
Dla ciągów zawierających & # x20; Musiałem dwukrotnie odkodować ciąg. Pierwsze dekodowanie zamieniłoby go w drugi przebieg poprawnie kodowałoby go do oczekiwanego znaku.