【问题标题】:Missing Html Entities decoding support BY NAME in C# WPF for special letters/characters缺少 Html 实体解码支持 C# WPF 中的 BY NAME 用于特殊字母/字符
【发布时间】:2012-06-26 13:03:33
【问题描述】:
我在解码 HTML 实体时遇到问题。我都试过了
System.Net.WebUtility.HtmlDecode()
并希望这仅仅是因为这是 HttpUtilities 的轻量级版本,我已经尝试过
HttpUtility.HtmlDecode()
也是。
我的问题是我需要从实体名称解码,而不是实体编号。
(请参阅此列表http://www.w3schools.com/tags/ref_entities.asp)
上述两种方法都解码实体编号,而不是实体名称。
【问题讨论】:
标签:
c#
.net
wpf
html-entities
【解决方案1】:
我真的没有看到你的问题。如果我通过WebUtility.HtmlDecode 测试解码,您发布的链接中列出的所有实体名称都会被解码:
var encoded = ""'&<>¡¢£¤" +
"¥¦§¨©ª«¬­®" +
"¯°±²³´µ¶·" +
"¸¹º»¼½¾¿" +
"×÷ÀÁÂÃÄÅ" +
"ÆÇÈÉÊËÌÍ" +
"ÎÏÐÑÒÓÔÕ" +
"ÖØÙÚÛÜÝÞ" +
"ßàáâãäåæ" +
"çèéêëìíî" +
"ïðñòóôõö" +
"øùúûüýþÿ";
var expected = "\"'&<>¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×÷ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ" +
"ÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
Console.WriteLine(System.Net.WebUtility.HtmlDecode(encoded) == expected);
这个小sn-p产生真。
谈到编码:HtmlEncode 函数就是这样实现的。除了自己实施之外,您几乎无能为力,我不建议这样做(如果您真的不需要,请不要重新发明轮子)。另请参阅有关编码的 SO 问题:C# HtmlEncode - ISO-8859-1 Entity Names vs Numbers