Текст Escape для HTML

Как избежать текста для использования html в С#? Я хочу сделать

sample="<span>blah<span>"

и

<span>blah<span>

отображается как обычный текст вместо blah только с тегами, частью html:(. Использование С# не ASP

Ответ 1

using System.Web;

var encoded = HttpUtility.HtmlEncode(unencoded);

Ответ 2

Кроме того, вы можете использовать это, если вы не хотите использовать сборку System.Web:

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

Per в этой статье, разница между System.Security.SecurityElement.Escape() и System.Web.HttpUtility.HtmlEncode() заключается в том, что первая также кодирует символы апострофа (').

Ответ 3

Если вы используете .NET 4 или выше, и вы не хотите ссылаться на System.Web, вы можете использовать WebUtility.HtmlEncode из System

var encoded = WebUtility.HtmlEncode(unencoded);

Это имеет тот же эффект, что и HttpUtility.HtmlEncode и должно быть предпочтительнее System.Security.SecurityElement.Escape.

Ответ 5

Вы можете использовать фактические теги html <xmp> и </xmp> для вывода строки, как показано все теги между тегами xmp.

Или вы также можете использовать на сервере Server.UrlEncode или HttpUtility.HtmlEncode.

Ответ 6

.NET 4.0 и выше:

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

Ответ 7

Не видел этого здесь

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

это было единственное, что работало (asp 4.0+) при работе с html, как это. &apos; отображается как ' (используя htmldecode) в html, вызывая его сбой:

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

Ответ 8

есть специальные символы кавычек, которые не удаляются с помощью HtmlEncode и не будут отображаться в Edge или IE правильно, как "и". вы можете расширить эти символы с помощью функции ниже.

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