我有一个下载程序,可以从 Internet 下载页面。每个页面的编码是不同的,有些是UTF-8,有些是Unicode。例如:a
显示'a'字符;充满这些字符的页面。我们应该将此编码转换为普通文本。
我UnicodeEncoding
在 c# 中使用了该类,但它们对我没有帮助。
如何将此编码解码为真实字符?是否有转换它的类或方法?
谢谢 。
我有一个下载程序,可以从 Internet 下载页面。每个页面的编码是不同的,有些是UTF-8,有些是Unicode。例如:a
显示'a'字符;充满这些字符的页面。我们应该将此编码转换为普通文本。
我UnicodeEncoding
在 c# 中使用了该类,但它们对我没有帮助。
如何将此编码解码为真实字符?是否有转换它的类或方法?
谢谢 。
那是html编码的;试试HtmlDecode吗?(您需要引用 System.Web.dll)
html 页面中以 & 开头并以 ; 结尾的文本是 HTML 编码的。
您可以使用以下方法解码这些:
string html = ...; //your html
string decoded = System.Web.HttpUtility.HtmlDecode( html );
另请参阅从 Internet 下载 HTML 后更改的字符串中的字符,以获取有关如何确保以正确字符集下载页面的代码。
您对 HTML/XML 转义和 UTF-8/Unicode 感到困惑。
如果页面是有效的 XML,生活会更轻松 - 您可以将其解析为任何其他 XML 文档,然后只需获取相关的文本节点......当您获取文本时,所有 XML 转义都将“未转义”。
如果它是任意的——并且可能是无效的——HTML,那么生活就有点困难了。您可能希望首先将其规范化为有效的 HTML,然后对其进行解析并再次询问文本节点。
如果你能给我们一个更具体的例子,给你建议会更容易。
其他答案中建议的HtmlDecode
方法很可能就是您所需要的 - 但您绝对应该首先尝试了解发生了什么。例如,您可能只想解码HTML 的某些片段 - 如果您解码整个文档,那么您最终可能会得到看起来包含 HTML 标记的文本,但实际上只包含原始文档中的文本。