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.Web
rakitan:
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.HtmlEncode
dariSystem
var encoded = WebUtility.HtmlEncode(unencoded);
Ini memiliki efek yang sama HttpUtility.HtmlEncode
dan lebih disukai daripada System.Security.SecurityElement.Escape
.
SecurityElement.Escape
beroperasi pada XML dan HtmlEncode
beroperasi pada HTML, dan pengkodean XML dan HTML memiliki persyaratan yang sedikit berbeda (lihat jawaban ini untuk detailnya). Jadi, misalnya SecurityElement.Escape
diperbolehkan menggunakan '
, sedangkan HtmlEncode
tidak.
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.UrlEncode
atau 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("“", "\""));
}