varios usar una significa reemplazar recortar que ejemplos como caracteres cadena c# windows-runtime html-entities html-encode

usar - Convertir entidades HTML a caracteres Unicode en C#



split c# ejemplos (6)

Diferente codificación / codificación de entidades HTML y números HTML en la aplicación Metro y la aplicación WP8.

Con la aplicación Windows Runtime Metro

{ string inStr = "ó"; string auxStr = System.Net.WebUtility.HtmlEncode(inStr); // auxStr == ó string outStr = System.Net.WebUtility.HtmlDecode(auxStr); // outStr == ó string outStr2 = System.Net.WebUtility.HtmlDecode("ó"); // outStr2 == ó }

Con Windows Phone 8.0

{ string inStr = "ó"; string auxStr = System.Net.WebUtility.HtmlEncode(inStr); // auxStr == ó string outStr = System.Net.WebUtility.HtmlDecode(auxStr); // outStr == ó string outStr2 = System.Net.WebUtility.HtmlDecode("ó"); // outStr2 == ó }

Para resolver esto, en WP8, he implementado la tabla en la referencia HTML ISO-8859-1 antes de llamar a System.Net.WebUtility.HtmlDecode() .

Encontré preguntas y respuestas similares para Python y Javascript, pero no para C # o cualquier otro lenguaje compatible con WinRT.

La razón por la que creo que lo necesito, es porque estoy mostrando el texto que recibo de los sitios web en una aplicación de la tienda de Windows 8. Por ejemplo, é debe convertirse en é .

¿O hay un mejor camino? No estoy mostrando sitios web o fuentes RSS, sino solo una lista de sitios web y sus títulos.


Esto funcionó para mí, reemplaza a las entidades comunes y Unicode.

private static readonly Regex HtmlEntityRegex = new Regex("&(#)?([a-zA-Z0-9]*);"); public static string HtmlDecode(this string html) { if (html.IsNullOrEmpty()) return html; return HtmlEntityRegex.Replace(html, x => x.Groups[1].Value == "#" ? ((char)int.Parse(x.Groups[2].Value)).ToString() : HttpUtility.HtmlDecode(x.Groups[0].Value)); } [Test] [TestCase(null, null)] [TestCase("", "")] [TestCase("'fark'", "''fark''")] [TestCase(""fark"", "/"fark/"")] public void should_remove_html_entities(string html, string expected) { html.HtmlDecode().ShouldEqual(expected); }


Esto podría ser útil, reemplaza todas las entidades (en lo que respecta a mis requisitos) con su equivalente en Unicode.

public string EntityToUnicode(string html) { var replacements = new Dictionary<string, string>(); var regex = new Regex("(&[a-z]{2,5};)"); foreach (Match match in regex.Matches(html)) { if (!replacements.ContainsKey(match.Value)) { var unicode = HttpUtility.HtmlDecode(match.Value); if (unicode.Length == 1) { replacements.Add(match.Value, string.Concat("&#", Convert.ToInt32(unicode[0]), ";")); } } } foreach (var replacement in replacements) { html = html.Replace(replacement.Key, replacement.Value); } return html; }


Método Zumey mejorado (no puedo comentar allí). El tamaño máximo de caracteres está en la entidad: & exclamation; (11). Mayúsculas en las entidades también son posibles, ej. À (Fuente de wiki )

public string EntityToUnicode(string html) { var replacements = new Dictionary<string, string>(); var regex = new Regex("(&[a-zA-Z]{2,11};)"); foreach (Match match in regex.Matches(html)) { if (!replacements.ContainsKey(match.Value)) { var unicode = HttpUtility.HtmlDecode(match.Value); if (unicode.Length == 1) { replacements.Add(match.Value, string.Concat("&#", Convert.ToInt32(unicode[0]), ";")); } } } foreach (var replacement in replacements) { html = html.Replace(replacement.Key, replacement.Value); } return html; }


Recomiendo usar System.Net.WebUtility.HtmlDecode y NO HttpUtility.HtmlDecode .

Esto se debe al hecho de que la referencia System.Web no existe en las aplicaciones Winforms / WPF / Console y puede obtener el mismo resultado exacto utilizando esta clase (que ya se agrega como referencia en todos esos proyectos).

Uso:

string s = System.Net.WebUtility.HtmlDecode("&eacute;"); // Returns é


Use HttpUtility.HtmlDecode() .Lea en msdn here

decodedString = HttpUtility.HtmlDecode(myEncodedString)