[C#] HTML을위한 이스케이프 텍스트

C #에서 HTML 사용을 위해 텍스트를 이스케이프 처리하려면 어떻게합니까? 나하고 싶어

sample="<span>blah<span>"

하고있다

<span>blah<span>

html의 태그 부분에만 blah 대신 일반 텍스트로 표시 :(. ASP가 아닌 C # 사용



답변

using System.Web;

var encoded = HttpUtility.HtmlEncode(unencoded);


답변

또한 System.Web어셈블리 를 사용하지 않으려는 경우이를 사용할 수 있습니다 .

var encoded = System.Security.SecurityElement.Escape(unencoded)

이 문서 의 차이 System.Security.SecurityElement.Escape()System.Web.HttpUtility.HtmlEncode()전자도 아포스트로피 인코딩한다는 것입니다 (')문자.


답변

당신이 나보다 .NET 4를 사용하고 참조 할 수없는 경우 System.Web, 당신은 사용할 수 있습니다 WebUtility.HtmlEncode에서System

var encoded = WebUtility.HtmlEncode(unencoded);

이것은 동일한 효과를 HttpUtility.HtmlEncode가지며보다 바람직합니다 System.Security.SecurityElement.Escape.


답변

아직 아무도 언급하지 않았지만 ASP.NET 4.0에는이를위한 새로운 구문이 있습니다. 대신에

<%= HttpUtility.HtmlEncode(unencoded) %>

당신은 단순히 할 수 있습니다

<%: unencoded %>

여기에서 더 읽으십시오 :
http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- ASP-net-mvc-2.aspx


답변

.NET 4.0 이상 :

using System.Web.Security.AntiXss;
//...
var encoded = AntiXssEncoder.HtmlEncode("input", useNamedEntities: true);


답변

당신은 실제 HTML 태그를 사용할 수 있습니다 <xmp></xmp>출력에 문자열로 XMP 태그 사이에있는 모든 태그를 표시하는 것입니다.

또는 당신은 또한 서버에서 사용할 수있는 Server.UrlEncodeHttpUtility.HtmlEncode.


답변

여기서 보지 못했습니다

System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's Site")

이와 같은 HTML을 다룰 때 유일하게 작동하는 것은 (asp 4.0 이상)이었습니다. 는 &apos;로 렌더링 도착 '실패를 일으키는 HTML로 (htmldecode 사용) :

<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It&apos;s Allstars'); return false;">It's Allstars</a>