[C#] C #에서 HTML 문자를 어떻게 디코딩 할 수 있습니까?

HTML 문자 엔터티로 인코딩 된 전자 메일 주소가 있습니다. .NET에 일반 문자열로 변환 할 수있는 것이 있습니까?



답변

당신이 사용할 수있는 HttpUtility.HtmlDecode

.NET 4.0 이상을 사용 WebUtility.HtmlDecode하는 경우 System.Net네임 스페이스 에서 사용할 수 있으므로 추가 어셈블리 참조가 필요없는을 사용할 수도 있습니다 .


답변

.Net 4.0에서 :

System.Net.WebUtility.HtmlDecode()

C # 프로젝트를 위해 어셈블리를 포함 할 필요가 없습니다.


답변

@CQ가 말했듯이 HttpUtility.HtmlDecode 를 사용해야 하지만 기본적으로 ASP 이외의 .NET 프로젝트에서는 사용할 수 없습니다.

비 ASP .NET 응용 프로그램의 경우에 참조를 추가해야합니다 System.Web.dll. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 “참조 추가”를 선택한 다음 목록을 찾아보십시오 System.Web.dll.

참조가 추가되었으므로 완전한 이름을 사용하여 메소드에 액세스 System.Web.HttpUtility.HtmlDecode하거나 using명령문을 삽입하여 System.Web작업을보다 쉽게 ​​수행 할 수 있어야합니다 .


답변

서버 컨텍스트가없는 경우 (예 : 오프라인으로 실행) HttpUtility 를 사용할 수 있습니다 . HtmlDecode .


답변

Server.HtmlDecodeHTML 엔터티를 디코딩하는 데 사용 합니다. HTML 을 이스케이프 하려면 (예 : <>문자를 사용자에게 표시하려면 )을 사용하십시오 Server.HtmlEncode.


답변

HTML을 디코딩하려면 아래 코드를 살펴보십시오.

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

출력은 같다

 Svendborg Værft A/S


답변

나처럼 HtmlAgilityPack을 사용하는 경우을 사용해야한다고 언급 할 가치가 있습니다 HtmlAgilityPack.HtmlEntity.DeEntitize(). a를 가져와 a string를 반환합니다 string.