我正在使用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
或将其打印为à
时,我应该怎么做?
答案 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
中有设置流编码的属性(通常它应该自动检测编码)但可能不适用于您的页面..(错误的元标记等...)