我在解码 HTML 实体时遇到问题。我试过同时使用
System.Net.WebUtility.HtmlDecode()
并希望这仅仅是因为这是 HttpUtilities 的轻量级版本,我尝试过
HttpUtility.HtmlDecode()
也是。
我的问题是我需要从实体名称解码,而不是实体编号。(请参阅此列表http://www.w3schools.com/tags/ref_entities.asp)
上述两种方法都解码实体编号,而不是实体名称。
我在解码 HTML 实体时遇到问题。我试过同时使用
System.Net.WebUtility.HtmlDecode()
并希望这仅仅是因为这是 HttpUtilities 的轻量级版本,我尝试过
HttpUtility.HtmlDecode()
也是。
我的问题是我需要从实体名称解码,而不是实体编号。(请参阅此列表http://www.w3schools.com/tags/ref_entities.asp)
上述两种方法都解码实体编号,而不是实体名称。
我真的没有看到你的问题。如果我通过 测试解码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