Как избежать текста для использования html в С#? Я хочу сделать
sample="<span>blah<span>"
и
<span>blah<span>
отображается как обычный текст вместо blah только с тегами, частью html:(. Использование С# не ASP
Как избежать текста для использования html в С#? Я хочу сделать
sample="<span>blah<span>"
и
<span>blah<span>
отображается как обычный текст вместо blah только с тегами, частью html:(. Использование С# не ASP
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Кроме того, вы можете использовать это, если вы не хотите использовать сборку System.Web
:
var encoded = System.Security.SecurityElement.Escape(unencoded)
Per в этой статье, разница между 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 Site")
это было единственное, что работало (asp 4.0+) при работе с html, как это. '
отображается как '
(используя htmldecode) в html, вызывая его сбой:
<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It's Allstars'); return false;">It Allstars</a>
есть специальные символы кавычек, которые не удаляются с помощью HtmlEncode и не будут отображаться в Edge или IE правильно, как "и". вы можете расширить эти символы с помощью функции ниже.
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace(""", "\"").Replace(""", "\""));
}