隐藏

使用WebBrowser获取网页源代码,编码解决中文乱码问题

发布:2014/8/1 23:48:55作者:管理员 来源:本站 浏览次数:2259

最近用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.mzwu.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:\mzwu.txt", stream.ReadToEnd(), Encoding.Unicode);
         MessageBox.Show(DateTime.Now.ToString() + ": 页面内容获取完成! ");
     }
}