4

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

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

如何将此编码解码为真实字符?是否有转换它的类或方法?

谢谢 。

4

3 回答 3

6

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

于 2010-06-12T10:37:59.283 回答
5

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

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

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

另请参阅从 Internet 下载 HTML 后更改的字符串中的字符,以获取有关如何确保以正确字符集下载页面的代码。

于 2010-06-12T10:38:30.780 回答
1

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

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

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

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

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

于 2010-06-12T10:38:03.933 回答