解析html时,字符被问号替换

时间:2011-11-04 08:26:08

标签: c# encoding html-agility-pack

我正在使用HtmlAgilityPack读取解析html文件并提取一些文本:

static void Main(string[] args)
        {
            var webGet = new HtmlWeb();
            var document = webGet.Load("http://port.ro/");

            var programs = from program in document.DocumentNode.Descendants()
                           where program.Name == "a" && program.Attributes["href"] != null && program.InnerText.Trim().Length > 0
                           select program.InnerText ;

            foreach (string s in programs)
            {
                Console.WriteLine(s);
            }

            Console.ReadLine();
        }

我的问题是该网站包含à等字符,当我打印它们时,它们会被?取代。

当我将文字à替换为a或将其打印为à时,我应该怎么做?

2 个答案:

答案 0 :(得分:1)

您是否尝试使用或设置网站所需的编码。这应该可以帮助您获得正确的文本

  

var document = webGet.Load(“http://port.ro/”,Encoding.UTF8); //检查您的编码

上面是htmldocument

用于HtmlWeb Try this

var web = new HtmlWeb
{
    AutoDetectEncoding = false,
    OverrideEncoding = myEncoding,
};
var doc = web.Load(myUrl);

答案 1 :(得分:1)

HtmlAgility中有设置流编码的属性(通常它应该自动检测编码)但可能不适用于您的页面..(错误的元标记等...)