WebBrowser抓网页乱码的解决方法

作者: Robin 分类: Asp.net 发布时间: 2011-09-01 12:00

WebBrowser控件在抓取网页后查看所抓取的html源代码,经常会发现页面源代码的中文部分乱码了,以下就是解决办法。

WebBrowser抓网页乱码的解决方法

最近用C#写一个简单的浏览器,通过WebBrowser.DocumentText获取的页面内容是乱码,百度中查到两个解决方法,存此处备忘:

方法一:

System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser.DocumentStream, System.Text.Encoding.GetEncoding("gb2312"));

string gethtml = getReader.ReadToEnd();

注意:我这儿使用的不是DocumentText属性获取的页面内容。

方法二:

private void button1_Click(object sender, EventArgs e)

{

WebBrowser webBrowser = new WebBrowser();

webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);

webBrowser.Navigate("http://www.xunbin.com/");

}

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

{

WebBrowser webBrowser = (WebBrowser)sender;

//WebBrowserReadyState.Interactive 和 WebBrowserReadyState.Complete 时都会触发DocumentCompleted

if (webBrowser.ReadyState == WebBrowserReadyState.Complete)

{

//webBrowser1.DocumentText 获取的内容中文会乱码

//获取文档编码

Encoding encoding = Encoding.GetEncoding(webBrowser.Document.Encoding);

StreamReader stream = new StreamReader(webBrowser.DocumentStream, encoding);

File.WriteAllText(@"C:\xunbin.txt", stream.ReadToEnd(), Encoding.Unicode);

MessageBox.Show(DateTime.Now.ToString() + ": 页面内容获取完成! ");

}

}

更多请访问http://blog.xunbin.com/Article/2011/9/1/1314624985/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签云