查看代码:
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
返回{
)。为什么会这样?
看起来这里有两件事。
-
&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