3

我在解码 HTML 实体时遇到问题。我试过同时使用

System.Net.WebUtility.HtmlDecode()

并希望这仅仅是因为这是 HttpUtilities 的轻量级版本,我尝试过

HttpUtility.HtmlDecode()

也是。

我的问题是我需要从实体名称解码,而不是实体编号。(请参阅此列表http://www.w3schools.com/tags/ref_entities.asp

上述两种方法都解码实体编号,而不是实体名称。

4

1 回答 1

2

我真的没有看到你的问题。如果我通过 测试解码WebUtility.HtmlDecode,则您发布的链接中列出的所有实体名称都将被解码:

var encoded = ""'&<>¡¢£¤" +
              "¥¦§¨©ª«¬­®" +
              "¯°±²³´µ¶·" +
              "¸¹º»¼½¾¿" +
              "×÷ÀÁÂÃÄÅ" +
              "ÆÇÈÉÊËÌÍ" +
              "ÎÏÐÑÒÓÔÕ" +
              "ÖØÙÚÛÜÝÞ" +
              "ßàáâãäåæ" +
              "çèéêëìíî" +
              "ïðñòóôõö" +
              "øùúûüýþÿ";
var expected = "\"'&<>¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿×÷ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ" +
                "ÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";

Console.WriteLine(System.Net.WebUtility.HtmlDecode(encoded) == expected);

这个小片段产生真实的。

编码方面:该HtmlEncode功能实现为以这种方式工作。除了自己实施之外,您几乎无能为力,我不建议这样做(如果您真的不需要,请不要重新发明轮子)。另请参阅有关编码的 SO 问题:C# HtmlEncode - ISO-8859-1 Entity Names vs Numbers

于 2012-06-26T13:22:41.717 回答