【问题标题】:How to convert UTF-8 to text in HTML entity?如何将 UTF-8 转换为 HTML 实体中的文本?
【发布时间】:2011-03-02 23:36:02
【问题描述】:

我有一个下载程序,可以从 Internet 下载页面。 每个页面的编码是不同的,有些是UTF-8,有些是Unicode。 例如:a 显示 'a' 字符;充满这些字符的页面。我们应该将此编码转换为普通文本。

我在 c# 中使用了UnicodeEncoding 类,但它们对我没有帮助。

如何将此编码解码为真实字符?有没有转换这个的类或方法?

谢谢。

【问题讨论】:

  • 顺便说一句:没有编码就没有像“普通文本”这样的东西。强烈推荐:joelonsoftware.com/articles/Unicode.html
  • 亲爱的,肯尼请做你的功课并纠正你的问题标题 - UTF8 是编码 Unicode 的几种方法之一。这些也不是普通文本——可能你想说的是 ANSI 或 ASCII。在这种情况下,不可能不丢失数据。

标签: c# encoding utf-8 html-entities


【解决方案1】:

那是html编码的;试试HtmlDecode? (您需要引用 System.Web.dll)

【讨论】:

    【解决方案2】:

    html 页面中以 & 开头和以 ; 结尾的文本是 HTML 编码的。

    您可以使用以下方法解码:

    string html = ...; //your html
    string decoded = System.Web.HttpUtility.HtmlDecode( html );
    

    另请参阅Characters in string changed after downloading HTML from the internet,了解有关如何确保以正确字符集下载页面的代码。

    【讨论】:

      【解决方案3】:

      您对 HTML/XML 转义和 UTF-8/Unicode 感到困惑。

      如果页面是有效的 XML,生活会更轻松 - 您可以将其解析为任何其他 XML 文档,然后只需获取相关的文本节点...当您获得文本。

      如果它是任意的——并且可能是无效的——HTML,那么生活就有点困难了。您可能希望先将其规范化为有效的 HTML,然后对其进行解析并再次请求文本节点。

      如果你能给我们一个更具体的例子,给你建议会更容易。

      其他答案中建议的HtmlDecode 方法很可能就是您所需要的 - 但您绝对应该首先尝试了解发生了什么。例如,您可能希望解码 HTML 的某些片段 - 如果您解码整个文档,那么您最终可能会得到它包含的 看起来 像 HTML 的文本标签,但实际上只包含原始文档中的文本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        • 2015-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多