请参阅此代码:
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
次通过,但TestLeftBrace
失败(Convert
返回{
)。这是为什么?
答案 0 :(得分:3)
看起来这里有两件事。
&lbrace
是{而不是[(http://jsfiddle.net/B7AAh/1/)
看起来&lbrace
已包含在已知项目列表中。源代码在此http://referencesource.microsoft.com/#System/net/System/Net/WebUtility.cs,其中引用了此处找到的实体列表http://www.w3.org/TR/REC-html40/sgml/entities.html