online httputility htmldecode escape c# html escaping

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 &apos; 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&apos;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("“", "/"")); }



using System.Web; var encoded = HttpUtility.HtmlEncode(unencoded);