Como escapar de texto para uso de html em c #? eu quero fazer
sample="<span>blah<span>"
e tem
<span>blah<span>
aparecem como texto sem formatação em vez de blá somente com as tags que fazem parte do html :(. Usando c # não ASP
Como escapar de texto para uso de html em c #? eu quero fazer
sample="<span>blah<span>"
e tem
<span>blah<span>
aparecem como texto sem formatação em vez de blá somente com as tags que fazem parte do html :(. Usando c # não ASP
Respostas:
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Além disso, você pode usar isso se não quiser usar o System.Webassembly:
var encoded = System.Security.SecurityElement.Escape(unencoded)
Por este artigo , a diferença entre System.Security.SecurityElement.Escape()e System.Web.HttpUtility.HtmlEncode()é que o primeiro também codifica (')caracteres de apóstrofo .
SecurityElement.Escape()escapes para XML, que não é exatamente HTML.
Se você estiver usando o .NET 4 ou superior e não quiser fazer referência System.Web, poderá usar a WebUtility.HtmlEncodepartir deSystem
var encoded = WebUtility.HtmlEncode(unencoded);
Isso tem o mesmo efeito HttpUtility.HtmlEncodee deve ser preferido System.Security.SecurityElement.Escape.
SecurityElement.Escapeopera em XML e HtmlEncodeopera em HTML, e a codificação XML e HTML tem requisitos ligeiramente diferentes (consulte esta resposta para obter detalhes). Então, por exemplo, SecurityElement.Escapeé permitido usar ', enquanto HtmlEncodenão é.
ninguém mencionou ainda, no ASP.NET 4.0 há uma nova sintaxe para fazer isso. ao invés de
<%= HttpUtility.HtmlEncode(unencoded) %>
você pode simplesmente fazer
<%: unencoded %>
leia mais aqui: 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
Você pode usar tags html reais <xmp>e </xmp>gerar a string como está para mostrar todas as tags entre as tags xmp.
Ou você também pode usar no servidor Server.UrlEncodeou HttpUtility.HtmlEncode.
Não vi isso aqui
System.Web.HttpUtility.JavaScriptStringEncode("Hello, this is Satan's Site")
foi a única coisa que funcionou (asp 4.0+) ao lidar com html como este. O 'é renderizado como '(usando htmldecode) no html, causando falha:
<a href="article.aspx?id=268" onclick="tabs.open('modules/xxx/id/268', 'It's Allstars'); return false;">It's Allstars</a>
existem alguns caracteres de aspas especiais que não são removidos pelo HtmlEncode e não serão exibidos corretamente no Edge ou no IE como "e". você pode substituir esses caracteres por algo como a função abaixo.
private string RemoveJunkChars(string input)
{
return HttpUtility.HtmlEncode(input.Replace("”", "\"").Replace("“", "\""));
}