WinForm使用webbrowser爬取数据,中文乱码问题

时间:2023-03-09 16:10:39
WinForm使用webbrowser爬取数据,中文乱码问题

使用winform中的webbrowser抓取某个网站的数据时,遇到中文乱码的问题:

当时使用的获取网页内容的代码为:

webBrowser1.DocumentText.ToString();

不管我如何使用转换编码的方式进行转换,都是乱码,在度娘的帮助下,终于找到正确答案:

如果所爬取的网站的编码是GB2312,则可以使用如下代码进行读取网页数据:

System.IO.StreamReader Reader = new System.IO.StreamReader(this.webBrowser1.DocumentStream, System.Text.Encoding.GetEncoding("GB2312"));
string Document = null;
Document = Reader.ReadToEnd();

如果所爬取的网站的编码UTF8,则使用下面的代码处理:

System.IO.StreamReader Reader = new System.IO.StreamReader(this.webBrowser1.DocumentStream, System.Text.Encoding.GetEncoding("utf-8"));

不论网站的编码格式为何, 都可以使用如下方式处理:

System.IO.StreamReader Reader = new System.IO.StreamReader(this.webBrowser1.DocumentStream, System.Text.Encoding.GetEncoding(this.webBrowser1.Document.Encoding ));