c# - htmldecode - httputility
Escape de texto para HTML (8)
.NET 4.0 y superior:
using System.Web.Security.AntiXss;
//...
var encoded = AntiXssEncoder.HtmlEncode("input", useNamedEntities: true);
¿Cómo escapo el texto para el uso de html en C #? quiero hacer
sample="<span>blah<span>"
y tiene
<span>blah<span>
aparecer como texto sin formato en lugar de bla solo con las etiquetas del html :(. Usar C # no ASP
Además, puede usar esto si no desea usar el ensamblado System.Web
:
var encoded = System.Security.SecurityElement.Escape(unencoded)
Según este artículo , la diferencia entre System.Security.SecurityElement.Escape()
y System.Web.HttpUtility.HtmlEncode()
es que el primero también codifica los caracteres de apóstrofo ('')
.
No he visto esto aquí
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan''s Site")
fue lo único que funcionó (asp 4.0+) cuando se trata de html como este. El '
se representa como ''
(usando htmldecode) en el html, causando que falle:
<a href="article.aspx?id=268" onclick="tabs.open(''modules/xxx/id/268'', ''It's Allstars''); return false;">It''s Allstars</a>
Puede usar las etiquetas html reales <xmp>
y </xmp>
para generar la cadena tal como está para mostrar todas las etiquetas entre las etiquetas xmp.
O también puede usar en el servidor HttpUtility.HtmlEncode
o HttpUtility.HtmlEncode
.
Si usa .NET 4 o superior y no desea hacer referencia a System.Web
, puede usar WebUtility.HtmlEncode
from System
var encoded = WebUtility.HtmlEncode(unencoded);
Esto tiene el mismo efecto que HttpUtility.HtmlEncode
y debe preferirse a System.Security.SecurityElement.Escape
.
hay algunos caracteres de comillas especiales que no son eliminados por HtmlEncode y no se mostrarán en Edge o IE correctamente como "y". puedes extender el reemplazo de estos caracteres con algo como la función de abajo.
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace("”", "/"").Replace("“", "/""));
}
nadie ha mencionado aún, en ASP.NET 4.0 hay una nueva sintaxis para hacer esto. en lugar de
<%= HttpUtility.HtmlEncode(unencoded) %>
puedes simplemente hacer
<%: unencoded %>
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);