我在解码HTML实体时遇到问题。我尝试过使用
System.Net.WebUtility.HtmlDecode()
并且希望它只是因为这是HttpUtilities的轻量级版本,我已经尝试了
HttpUtility.HtmlDecode()
。
我的问题是我需要从实体名称解码,而不是实体编号。 (参见此列表http://www.w3schools.com/tags/ref_entities.asp)
前面提到的两种方法都与实体编号进行解码,而非实体编号。
答案 0 :(得分:2)
我真的没有看到你的问题。如果我通过WebUtility.HtmlDecode
测试解码,则您发布的链接中列出的所有实体名称都会被解码:
var encoded = ""'&<>¡¢£¤" +
"¥¦§¨©ª«¬­®" +
"¯°±²³´µ¶·" +
"¸¹º»¼½¾¿" +
"×÷ÀÁÂÃÄÅ" +
"ÆÇÈÉÊËÌÍ" +
"ÎÏÐÑÒÓÔÕ" +
"ÖØÙÚÛÜÝÞ" +
"ßàáâãäåæ" +
"çèéêëìíî" +
"ïðñòóôõö" +
"øùúûüýþÿ";
var expected = "\"'&<>¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×÷ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ" +
"ÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
Console.WriteLine(System.Net.WebUtility.HtmlDecode(encoded) == expected);
这个小片段产生了真实。
说到编码:实现HtmlEncode
函数就是这样工作的。你可以做的很少,除了自己实现它,我不推荐(如果你真的不需要,不要重新发明轮子)。另请参阅有关编码的这个问题:C# HtmlEncode - ISO-8859-1 Entity Names vs Numbers