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.Webmontajı 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.HtmlEncodedanSystem
var encoded = WebUtility.HtmlEncode(unencoded);
Bu aynı etkiye sahiptir ve HttpUtility.HtmlEncodetercih edilmelidir System.Security.SecurityElement.Escape.
SecurityElement.EscapeXML 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.Escapeizin 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.UrlEncodeveya 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("“", "\""));
}