不能从网上刮掉立陶宛语言字符

时间:2018-02-16 17:16:26

标签: c# encoding web-scraping html-agility-pack

我使用HtmlAgilityPack在C#中创建了一个简单的Web scraper。我正在抓一个立陶宛网站,网站上的内容有立陶宛字符(ąėęįųūčšž)。当我刮掉内容时,我得到了???而不是这些立陶宛字符。例如,如果单词是Aušrinė,我会得到Au?rin?。

我试图向我的httpClient添加标题,试图让它接受ISO-8859-4字符:

var url = "http://www3.lrs.lt/pls/inter/w5_sale_new.balsp_bals_id=-28555";

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Accept-Charset", "ISO-8859-4");
var html = await httpClient.GetStringAsync(url);

//Console.WriteLine(html.Result);

var htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(html);

它不起作用。我仍然得到问号,而不是ąėęįųūčšž。有人知道这个问题的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案!如果我得到这样的html,它可以正常工作并显示立陶宛字符:

var web = new HtmlWeb();
web.OverrideEncoding = Encoding.GetEncoding("windows-1257");
var html = web.Load(url);

在我正在抓取的网页的元标记中,我发现它支持charset = windows-1257。