WebBrowser抓网页乱码的解决方法

摘要 : WebBrowser grasping page garbled solution

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/
上一篇 :C#根据进程ID获取进程的用户名
下一篇 :AS3中使用as3crypto类加密解密Des