【问题标题】:Return a utf-8 string with HttpEncoder.HtmlDecode?使用 HttpEncoder.HtmlDecode 返回一个 utf-8 字符串?
【发布时间】:2011-05-05 03:23:14
【问题描述】:

我正在尝试用 C# 编写一个方法,该方法采用带有 HTML 编码字符的字符串并将其作为 utf-8 字符返回。起初我认为HttpEncoder.HtmlDecode 方法已经可以做到这一点,但这会返回 void 并将 TextWriter 作为第二个参数输出。我并没有真正得到 TextWriter 类。我该如何包装它以便它接受并返回字符串?或者有没有连击方式?

例如

myHTMLDecode("Tania Pérez-Salas Compañia de Danza")

将返回 utf-8 字符串 - Tania Pérez-Salas Compañia de Danza

edit - 我遇到的另一个问题是 HttpEncoder.HtmlDecode 是受保护的方法。反正有这个吗?

【问题讨论】:

    标签: c# .net character-encoding


    【解决方案1】:

    使用 StringWriter

    public static String DecodeHtmlEntities(String s) {
        StringWriter writer = new StringWriter();
        HttpEncoder.HtmlDecode(s, writer);
        return writer.ToString();
    }
    

    【讨论】:

    • 这看起来可行,但是我现在意识到该方法被标记为“受保护的内部虚拟”,所以我得到:“错误'System.Web.Util.HttpEncoder.HtmlDecode'由于无法访问其保护等级”
    【解决方案2】:

    还有HttpUtility.HtmlDecode 接受一个字符串并返回一个字符串。根据我链接的页面,HttpEncoder.HtmlDecode 似乎是内部的,我认为使用起来会很痛苦......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 2014-10-08
      • 2023-03-27
      相关资源
      最近更新 更多