I have a string (from a CDATA element) that contains description of XML. I need to decode this string into a new string that displays the characters correctly using C#
As Kirill and msarchet said, you can use HttpUtility.HtmlDecode from System.Web. It escapes pretty much anything correctly.
If you don't want to reference System.Web you might use some trick which supports all XML escaping but not HTML-specific escaping like é:
public static string XmlDecode(string value) {
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root>" + value + "</root>");
return xmlDoc.InnerText;
}
You could also use a RegEx or simple string.Replace but it would only support basic XML escaping. Things like А or é are examples that would be harder to support.