IT story

HTML을위한 이스케이프 텍스트

hot-time 2020. 7. 2. 07:34
반응형

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


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

또는 서버 Server.UrlEncode또는 에서 사용할 수도 있습니다 HttpUtility.HtmlEncode.


.NET 4.0 이상 :

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

여기서 보지 못했습니다

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>

HtmlEncode로 제거되지 않은 특수 인용 부호 문자가 있으며”및“처럼 Edge 또는 IE에 올바르게 표시되지 않습니다. 이러한 문자를 아래 기능과 같은 것으로 대체 할 수 있습니다.

private string RemoveJunkChars(string input)
{
    return HttpUtility.HtmlEncode(input.Replace("”", "\"").Replace("“", "\""));
}

참고 URL : https://stackoverflow.com/questions/1005264/escape-text-for-html

반응형