Nasıl C # html kullanımı için metin kaçmak? ben yapmak istiyorum
sample="<span>blah<span>"
ve sahip
<span>blah<span>
yalnızca html :( etiketleri yerine ASP ile değil C # kullanarak
Nasıl C # html kullanımı için metin kaçmak? ben yapmak istiyorum
sample="<span>blah<span>"
ve sahip
<span>blah<span>
yalnızca html :( etiketleri yerine ASP ile değil C # kullanarak
Yanıtlar:
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Ayrıca, System.Web
montajı kullanmak istemiyorsanız bunu kullanabilirsiniz :
var encoded = System.Security.SecurityElement.Escape(unencoded)
Başına bu makalede , arasındaki fark System.Security.SecurityElement.Escape()
ve System.Web.HttpUtility.HtmlEncode()
eski de kesme işareti kodlar olmasıdır (')
karakterleri.
SecurityElement.Escape()
için kaçış demek değildir.
Eğer ya da yukarıdaki .NET 4 kullanıyor ve referansa istemiyorsanız System.Web
, kullanabileceğiniz WebUtility.HtmlEncode
danSystem
var encoded = WebUtility.HtmlEncode(unencoded);
Bu aynı etkiye sahiptir ve HttpUtility.HtmlEncode
tercih edilmelidir System.Security.SecurityElement.Escape
.
SecurityElement.Escape
XML HtmlEncode
üzerinde çalışan ve HTML üzerinde çalışan ve XML ve HTML kodlamanın biraz farklı gereksinimleri vardır ( ayrıntılar için bu cevaba bakın). Yani, örneğin, SecurityElement.Escape
izin verilir '
, ancak izin verilir HtmlEncode
.
henüz kimse bahsetmedi, ASP.NET 4.0'da bunu yapmak için yeni bir sözdizimi var. onun yerine
<%= HttpUtility.HtmlEncode(unencoded) %>
basitçe yapabilirsin
<%: unencoded %>
burada daha fazlasını okuyun: 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
Sen gerçek html etiketleri kullanabilirsiniz <xmp>
ve </xmp>
çıkışa dize olarak xmp etiketleri arasında etiketlerin tüm göstermektir.
Ya da sunucu üzerinde kullanabilirsiniz Server.UrlEncode
veya HttpUtility.HtmlEncode
.
Bunu burada görmedim
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's Site")
Böyle html ile uğraşırken işe yarayan tek şeydi (asp 4.0+). '
Olarak işlenen alır '
başarısız olmasına neden html (htmldecode kullanılarak):
<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It's Allstars'); return false;">It's Allstars</a>
HtmlEncode tarafından kaldırılmayan ve Edge veya IE'de doğru görüntülenmeyecek bazı özel tırnak karakterleri vardır ”ve“. bu karakterleri aşağıdaki işlev gibi bir şeyle değiştirebilirsiniz.
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace("”", "\"").Replace("“", "\""));
}