【问题标题】:C# HTMLDecode without System.Web possible?没有 System.Web 的 C# HTMLDecode 可能吗?
【发布时间】:2010-10-17 05:38:55
【问题描述】:

我知道 System.Web 命名空间中有不同的方法用于解码 html 实体(例如用于空格的“%20”)。但是,我正在构建一个 Winforms 应用程序,但需要处理 html 编码的字符串。基本上我有 iTunes Library XML 文件,需要解码其中的 URL 以检查文件。

如果没有 System.Web 命名空间,这可能吗?

【问题讨论】:

  • 为什么不使用 System.Web 命名空间?
  • 如果你想使用框架的仅客户端子集,这很重要,+1。
  • @Cookey 看到 bizon 的回答,绝对是最好的。
  • 我怀疑选择的答案已过时,应该更改

标签: c# html-encode


【解决方案1】:

也许它可以在 winforms 中提供帮助:

System.Uri.EscapeUriString(plainText);

【讨论】:

  • 你介意扩展你的代码而不是发布一个班轮吗?
【解决方案2】:

你可以使用System.Net.WebUtility.HtmlDecode:

将已为 HTTP 传输进行 HTML 编码的字符串转换为已解码的字符串。

【讨论】:

    【解决方案3】:

    您可以使用HttpUtility.UrlDecodeHttpUtility.HtmlDecode

    【讨论】:

    • 因为问题是如何在没有 System.Web 程序集的情况下做到这一点,恐怕这没有多大帮助..
    【解决方案4】:

    需要在其客户端应用程序中使用 System.Web.HttpUtility 并且必须引用 System.Web.dll 并因此以 NET4 为目标的开发人员 full (System.Web.dll is in Full) ,现在可以针对 NET4 客户端 使用新的 System.Net.WebUtility 类进行分析,该类位于 System.dll(System.dll 位于 NET4 客户端配置文件中)。 System.Net.WebUtility 包括 HtmlEncode 和 HtmlDecode。网址编码 可以使用 System.Uri 类(也在 System.dll 中)来完成。

    来自http://blogs.msdn.com/b/jgoldb/archive/2010/04/12/what-s-new-in-net-framework-4-client-profile-rtm.aspx

    【讨论】:

    • 这是最好的答案。谢谢比松!
    【解决方案5】:

    如果您仍然想知道如何在没有 System.Web 的情况下执行此操作,请参阅 this article。它为 URI 解码提供了一种解决方案(这实际上是您正在解码的内容,而不是类似于 "&emdash;" 的 HTML 实体)

    【讨论】:

    • 谢谢史蒂夫,这正是我想要的 +1
    【解决方案6】:

    要使用 .NET 框架中的方法,您必须使用 System.Web 命名空间来获取 HtmlDecode 方法。

    是的,您可以编写自己的方法来执行此操作,但这没有多大意义。

    只需添加对 system.web 的引用。

    【讨论】:

      【解决方案7】:

      仅仅因为您正在编写 Windows 窗体应用程序并不能阻止您使用 System.Web。只需添加对System.Web.dll 的引用即可。

      【讨论】:

      • 我以前曾被此绊倒。我忘记了参考,以为“使用”就可以了。谢谢!
      • 问题在于您不能将 .NET 3.5 客户端配置文件与您的 .NET 应用程序一起使用,因此您的 XP 用户可以避免 150mb 的下载并选择较小的 28mb 的。如果可以,最好避免使用 System.Web 命名空间。
      • 我第二点说,这些方法的一个子集无法在可用于客户端配置文件安装的单独程序集中提供。我发现自己在简单的客户端应用程序中经常需要它们。
      • @Almund:检查我的答案。他们做到了。
      猜你喜欢
      • 2010-12-02
      • 2010-10-23
      • 1970-01-01
      • 2012-02-10
      • 2023-03-19
      • 2019-03-17
      • 2017-04-14
      • 2016-03-11
      相关资源
      最近更新 更多