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.UrlEncode
나 HttpUtility.HtmlEncode
.
답변
여기서 보지 못했습니다
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's Site")
이와 같은 HTML을 다룰 때 유일하게 작동하는 것은 (asp 4.0 이상)이었습니다. 는 '
로 렌더링 도착 '
실패를 일으키는 HTML로 (htmldecode 사용) :
<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It's Allstars'); return false;">It's Allstars</a>