Bagaimana cara meloloskan teks untuk penggunaan html di C #? aku ingin melakukan
sample="<span>blah<span>"
dan memiliki
<span>blah<span>
muncul sebagai teks biasa, bukan bla hanya dengan tag bagian dari html :(. Menggunakan C # bukan ASP
Bagaimana cara meloloskan teks untuk penggunaan html di C #? aku ingin melakukan
sample="<span>blah<span>"
dan memiliki
<span>blah<span>
muncul sebagai teks biasa, bukan bla hanya dengan tag bagian dari html :(. Menggunakan C # bukan ASP
Jawaban:
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Juga, Anda dapat menggunakan ini jika Anda tidak ingin menggunakan System.Webrakitan:
var encoded = System.Security.SecurityElement.Escape(unencoded)
Berdasarkan artikel ini , perbedaan antara System.Security.SecurityElement.Escape()dan System.Web.HttpUtility.HtmlEncode()adalah bahwa yang pertama juga menyandikan (')karakter apostrof .
SecurityElement.Escape()escapes untuk XML yang tidak persis HTML.
Jika Anda menggunakan .NET 4 atau lebih tinggi dan Anda tidak ingin referensi System.Web, Anda dapat menggunakan WebUtility.HtmlEncodedariSystem
var encoded = WebUtility.HtmlEncode(unencoded);
Ini memiliki efek yang sama HttpUtility.HtmlEncodedan lebih disukai daripada System.Security.SecurityElement.Escape.
SecurityElement.Escapeberoperasi pada XML dan HtmlEncodeberoperasi pada HTML, dan pengkodean XML dan HTML memiliki persyaratan yang sedikit berbeda (lihat jawaban ini untuk detailnya). Jadi, misalnya SecurityElement.Escapediperbolehkan menggunakan ', sedangkan HtmlEncodetidak.
belum ada yang menyebutkan, di ASP.NET 4.0 ada sintaks baru untuk melakukan ini. dari pada
<%= HttpUtility.HtmlEncode(unencoded) %>
Anda bisa melakukannya
<%: unencoded %>
baca lebih lanjut di sini: 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
Anda dapat menggunakan tag html yang sebenarnya <xmp>dan </xmp>menampilkan string sebagaimana untuk menampilkan semua tag di antara tag xmp.
Atau bisa juga digunakan di server Server.UrlEncodeatau HttpUtility.HtmlEncode.
<xmp>sudah lama tidak digunakan lagi: stackoverflow.com/questions/8307846/… gunakan <pre>sebagai gantinya
Tidak melihat ini di sini
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's Site")
itu adalah satu-satunya hal yang berhasil (asp 4.0+) ketika berhadapan dengan html seperti ini. Itu 'akan dirender sebagai '(menggunakan htmldecode) di html, menyebabkannya gagal:
<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It's Allstars'); return false;">It's Allstars</a>
ada beberapa karakter tanda kutip khusus yang tidak dihapus oleh HtmlEncode dan tidak akan ditampilkan di Edge atau IE dengan benar seperti "dan". Anda dapat mengganti karakter ini dengan fungsi seperti di bawah ini.
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace("”", "\"").Replace("“", "\""));
}