字符编码不适用于UTF8

时间:2013-06-16 08:36:43

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

我正在编写一个web scraper,它从网站下载并处理html。下载网站内容后,所有内容都存储在数据库中。然后我从数据库中获取数据以显示在Winform应用程序上,而问题是winform应用程序无法显示从DB获取的内容。经过调查,我发现问题是字符编码(UTF8,Unicode,...),但我不知道如何解决它。 它适用于这样的代码:

        byte[] data = Encoding.Default.GetBytes("check it out");
        news.Title = Encoding.UTF8.GetString(data);

“检查出来”显示正确 然而,

        byte[] data = Encoding.Default.GetBytes(title);
        news.Title = Encoding.UTF8.GetString(data);

news.Title不显示在Winform Appication上,当然,“title”不为null或为空。

这就是我获得“头衔”的方式:

首先,获取html内容

StreamReader sr = new StreamReader(response.GetResponseStream())    
rawHtml = sr.ReadToEnd();
byte[] data = Encoding.Default.GetBytes(rawHtml);
htmlCode= Encoding.UTF8.GetString(data) + "";
sr.Close();

然后,使用HtmlAgilityPack从htmlCode获取“title”节点。

HtmlNode titleNode = node.SelectSingleNode("//div[@class='title']");
title = titleNode != null ? titleNode.InnerText : string.Empty;
title = WebUtility.HtmlDecode(title);

0 个答案:

没有答案