Как мне избежать текста для использования HTML в C #? я хочу делать
sample="<span>blah<span>"
и имеют
<span>blah<span>
отображаться как обычный текст вместо бла только с тегами часть HTML :(. Использование C # не ASP
Как мне избежать текста для использования HTML в C #? я хочу делать
sample="<span>blah<span>"
и имеют
<span>blah<span>
отображаться как обычный текст вместо бла только с тегами часть HTML :(. Использование C # не ASP
Ответы:
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()
заключается в том, что первый также кодирует (')
символы апострофа .
SecurityElement.Escape()
ускользает от XML, который не совсем HTML.
Если вы используете .NET 4 или выше и не хотите ссылаться System.Web
, вы можете использовать WebUtility.HtmlEncode
изSystem
var encoded = WebUtility.HtmlEncode(unencoded);
Это имеет тот же эффект, что HttpUtility.HtmlEncode
и должно быть предпочтительным System.Security.SecurityElement.Escape
.
SecurityElement.Escape
работает на XML и HtmlEncode
работает на HTML, а XML и HTML-кодирование предъявляют немного разные требования (подробности см. В этом ответе ). Так, например, SecurityElement.Escape
разрешено использовать '
, пока HtmlEncode
нет.
никто еще не упомянул, в 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- жерех-нетто-MVC-2.aspx
Вы можете использовать фактические HTML-теги <xmp>
и </xmp>
вывести строку как есть, чтобы показать все теги между тегами xmp.
Или вы также можете использовать на сервере Server.UrlEncode
или HttpUtility.HtmlEncode
.
Не видел это здесь
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's 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's Allstars</a>
есть некоторые специальные символы кавычек, которые не удаляются HtmlEncode и не будут правильно отображаться в Edge или IE, например »и«. Вы можете заменить эти символы на что-то вроде функции ниже.
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace("”", "\"").Replace("“", "\""));
}