【问题标题】:ISO-8859-1 encoded string to UTF-8 stringISO-8859-1 编码字符串到 UTF-8 字符串
【发布时间】:2018-02-02 13:24:18
【问题描述】:

我正在使用 HtmlAgilityPack 从某些网站中获取一些元数据。但是,很多网站的元数据内容都使用 ISO-8857-1 编码保存,所以我得到如下字符串:

Alt sammen under ét tag.  Kontakt os i dag på

作为一个编码初学者,我完全不知道如何获得常规的 UTF-8 编码字符串。我试过这样的程序:

Encoding.GetEncoding("iso-8859-1").GetString(Encoding.UTF8.GetBytes(input));

这只是给了我一个更加晦涩的字符串。有人可以指出我正确的方向吗?当我将它们写入引号块时,甚至堆栈溢出也会将 iso-8859-1 字符转换为正确的字符。

【问题讨论】:

  • 请注意,数字字符实体引用标识 Unicode 代码点,HTML 文档中使用文档字符编码解码后的所有字符也是如此。 (如果您从 .NET 字符串的角度查看内容,那么它的编码是 UTF-16。但在您尝试在任意位置索引字符串或确定字符串的“长度”之前,这无关紧要。 )

标签: c# utf-8 character-encoding html-agility-pack


【解决方案1】:

你在寻找 "Alt sammen under ét tag. Kontakt os i dag på" 作为输出? 在这种情况下,您可能会将字符编码与 html 编码混淆,后者是页面字符编码之上的另一层编码。

如果是这种情况,请使用system.web.httputility.htmldecode 将字符串设为“人类可读”。

【讨论】:

  • 非常感谢。我知道我在某种程度上错过了这一点。这行得通。
猜你喜欢
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 2020-01-25
  • 2011-04-07
  • 2010-12-02
  • 2016-07-29
相关资源
最近更新 更多