See this code:
namespace TestHtmlDecode
{
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Web;
[TestClass]
public class TestHtmlDecode
{
private string Convert(string input)
{
return HttpUtility.HtmlDecode(input);
}
[TestMethod]
public void TestLeftBrace()
{
Assert.AreEqual("{", Convert("{"));
}
[TestMethod]
public void TestGreaterThan()
{
Assert.AreEqual(">", Convert(">"));
}
}
}
TestGreaterThan passes, but TestLeftBrace fails (Convert returns {). Why is this?
Looks like there are two things going on here.
&lbraceis a { and not [ (http://jsfiddle.net/B7AAh/1/)It doesn't look like
&lbraceis included in the list of of known items. Source code is here http://referencesource.microsoft.com/#System/net/System/Net/WebUtility.cs which refers to the list of entities found here http://www.w3.org/TR/REC-html40/sgml/entities.html