WinForm开发浏览器,WebBrowser获取页面内容,如何解决中文乱码

最近用C#写一个简单的浏览器,遇到一个小小的问题,即:在通过WebBrowser.DocumentText获取的页面内容是乱码?百度了N久,也没看到一个较好的解决办法。通过反复的实验,并总结网上各位同仁的思路,终于找到了解决的办法。下面提供给大家,以供参考。

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

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

posted @ 2006-12-27 11:54 antsoftcn 阅读(4735) 评论(7) 编辑 收藏

 回复 引用 查看   
#1楼2006-12-27 18:05 | ZergTant      
应该是看网站的charset吧,你测试过utf8的这样做不是乱码?
 回复 引用   
#2楼2006-12-28 08:18 | antsoftcn[匿名][未注册用户]
UTF8编码方式,只是在读取的时候,指定为UTF8即可啊.

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

 回复 引用 查看   
#3楼2007-03-02 11:00 | 一醉解千愁      
问题的关键在于你如何判断什么时候使用utf-8,什么时候用gb2312,或者unicode
 回复 引用 查看   
#4楼2007-03-05 13:40 | 小C      
WebBrowser的编码可以从文档对象中获得,将代码改为如下即可。

System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser.DocumentStream, System.Text.Encoding.GetEncoding(this.webBrowser.Document.Encoding));
string gethtml = getReader.ReadToEnd();

真是不错.
 回复 引用   
#6楼2007-11-28 15:52 | 非常感谢![未注册用户]
受益非浅,谢谢!
 回复 引用   
#7楼2008-02-28 11:32 | 龙骑将[未注册用户]
碰到同样的问题,用了你的代码后好使了。
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

文章分类

友情链接

  • 烟台书画网

最新评论

阅读排行榜