HttpUtility.HtmlDecode()对某些字符失败

本文关键字:字符 失败 HtmlDecode HttpUtility | 更新日期: 2023-09-27 18:15:08

查看代码:

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返回{)。为什么会这样?

HttpUtility.HtmlDecode()对某些字符失败

看起来这里有两件事。

  1. &lbrace是{而不是[(http://jsfiddle.net/B7AAh/1/)

  2. 看起来&lbrace不包括在已知项目列表中。源代码在这里http://referencesource.microsoft.com/#System/net/System/Net/WebUtility.cs它指的是这里找到的实体列表http://www.w3.org/TR/REC-html40/sgml/entities.html