【问题标题】:Converting & to & etc将 & 转换为 & 等
【发布时间】:2010-12-06 10:47:24
【问题描述】:

我想将& 转换为 &," 转换为 " 等等。 c# 中是否有一个函数可以在不手动编写所有选项的情况下做到这一点?

【问题讨论】:

    标签: c# html-encode string-conversion


    【解决方案1】:
    System.Web.HttpUtility.HtmlDecode()
    

    编辑:来自here 的注释“要在 Web 应用程序之外对值进行编码或解码,请使用...”

    System.Net.WebUtility.HtmlDecode()
    

    【讨论】:

    • @AbuHamzah 它不应该适用于 &amp,但它应该适用于 &
    • @BartoszWojcik 这种方法从 .NET 1.1 开始就存在了。请参阅 MSDN 文档:msdn.microsoft.com/en-us/library/aa332854%28v=vs.71%29.aspx
    • 我用的是 4.7.1 但找不到System.Web.HttpUtility.HtmlDecode()
    • Rishav,我们需要添加对 System.Web 的引用才能使用该功能。
    【解决方案2】:

    使用静态方法

    HttpUtility.HtmlEncode
    

    & 更改为&" 更改为"。使用

    HttpUtility.HtmlDecode
    

    做相反的事情。

    【讨论】:

      【解决方案3】:

      您可以使用System.Net.WebUtility.HtmlDecode(uri);

      【讨论】:

      • @AmirNo-Family 如果您不在 Web 应用程序中,那么是的,您需要 System.Net.WebUtility 版本。否则,System.Web.HttpUtility.HtmlDecode 工作得很好。
      【解决方案4】:
      using System.Web; 
      ...
      var html = "this is a sample & string"; 
      var decodedhtml = HttpUtility.HtmlDecode(html);
      

      【讨论】:

      • 虽然此代码可能(或可能不会)解决问题,但一个好的答案应该解释代码的作用以及它如何解决问题。
      【解决方案5】:

      【讨论】:

      • 这适用于 ASP.NET。但除此之外,马特的答案更好。
      • 我假设是 ASP.NET。该文档提到了 HttpUtility 的 HtmlDecode,因为无论如何这都是 Server.HtmlEncode 所调用的。通过阅读文档很容易解决这个问题 - Server.HtmlEncode 的文档实际上解释了它的作用,不幸的是 HttpUtility.HtmlDecode 没有。
      【解决方案6】:

      对于.NET

          public static string HtmlEncode(string value)
          {
              return value.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\"", "&quot;").Replace("'", "&apos;");
          }
      

      【讨论】:

        猜你喜欢
        • 2015-12-13
        • 2017-02-27
        • 1970-01-01
        • 2021-10-06
        • 2020-07-29
        • 2012-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多