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属性获取的页面内容。

antsoftcn
关注 - 0
粉丝 - 0
0
0
(请您对文章做出评价)
« 上一篇:WinForm如何输出中文星期几?
» 下一篇:客户端(CSS)解决自动截取字符串长度,并以...代替
posted @ 2006-12-27 11:54 antsoftcn 阅读(3109) 评论(7) 编辑 收藏 所属分类: C#

 回复 引用 查看   
#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

搜索

文章分类

友情链接

  • 菲贝儿童装批发
  • 时尚新款童装批发、加盟网站。质量保证!信誉可靠!服务到位!
  • 蚂蚁制作 (rss)
  • 丛林蚂蚁的官方博客,以后所有更新转至此博客。
  • 烟台书画网
  • 烟台书画门户网站,是烟台地区最专业的书画网站。

最新评论

虽然你说的平台是古董级的,但是技术含量是新手级的,最基本的常识。 (咯咯哒)
没声明64位,那肯定是X86啊。这是常识吧。 (antsoftcn)
貌似32位还是比较好解决的,64位才是难点。 (Windie Chai)
Bad Request (Invalid Hostname) (Ryan Gene)
64位的吧,也不写明白,否则在用32位的看到会鄙视你的 (::似水无痕::)