CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

我编了一个抓取网页的程序,可是都是乱码,求教各位高手

楼主sinory(华未眠)2005-08-15 18:46:21 在 .NET技术 / C# 提问

我用的是webrequest类,抓下来的网页很多都是乱码,我现在是通过先读一小部分html文本并判断是不是gb2312,是的就   用gb2312编码方式存,否则用utf-8.但是还有不少网页是乱码,各位有没有什么好的办法啊。 问题点数:20、回复次数:8Top

1 楼wxy0401(abc)回复于 2005-08-15 19:17:34 得分 10

HttpWebRequest   myHttpWebRequest   =   (HttpWebRequest)WebRequest.Create(url);    
  HttpWebResponse   myHttpWebResponse   =   (HttpWebResponse)myHttpWebRequest.GetResponse();    
  Stream   strm=myHttpWebResponse.GetResponseStream();  
  StreamReader   sr=new   StreamReader(strm,Encoding.Default);  
  string   outdata=sr.ReadToEnd();Top

2 楼andison1(黑客小子)回复于 2005-08-15 19:28:27 得分 0

对啦,怎么样才能引用这个类啊~~~Top

3 楼gazz()回复于 2005-08-15 19:54:37 得分 0

Encoding.Default  
  就可以了Top

4 楼andison1(黑客小子)回复于 2005-08-15 20:33:40 得分 0

那在VB.net能否也用这个啊~》~~Top

5 楼sinory(华未眠)回复于 2005-08-16 12:44:21 得分 0

一楼的方法我用过,这样用来处理   gb2312编码的网页还可以处理utf-8等就是乱码了Top

6 楼benzite(小禾)回复于 2005-08-16 13:45:32 得分 0

gzTop

7 楼iasky(iasky)回复于 2005-08-16 13:49:46 得分 0

WebClient   wb=new   WebClient();  
  byte[]   pageData=wb.DownloadData(@url);  
  string   result=Encoding.Default.GetString(pageData);Top

8 楼itfly(胡国)回复于 2005-08-16 16:25:22 得分 10

private   Regex   regEncoding   =   new   Regex(@"charset=([\w-]*)\.*");  
   
  ///   <summary>  
  ///   Get   a   charset   information   from   the   target   web   uri;  
  ///   </summary>  
  ///   <param   name="targetUri">Target   web   Uri</param>  
  ///   <returns>The   Encoding   the   website   used</returns>  
  public   Encoding   GetWebEncoding(Uri   targetUri)  
  {  
  Encoding   enc   =   Encoding.ASCII;  
  WebClient   browser   =   new   WebClient();  
  string   strContent   =   enc.GetString(browser.DownloadData(targetUri.ToString()));  
   
  Match   m   =   regEncoding.Match(strContent);  
  if(m.Success)  
  {  
  return   Encoding.GetEncoding(m.Groups[1].ToString());  
  }  
  return   Encoding.GetEncoding("gb2312");  
  }Top

相关问题

  • 网页抓取
  • 怎么用程序实现抓取某网页的HTML?
  • 我什么我的抓取网页程序抓取到的页面数据不全?谢谢。
  • 网页乱码
  • ASP网页乱码
  • php 如何抓取网页
  • 如何抓取该网页中的表格内容?有难度,普通的小偷程序无效哦。
  • 用java程序语言如何实现抓取网页的原代码并存为*.txt文件,~~谢
  • 网页乱码的问题
  • 如何用ASP实现抓取网页?

关键词

  • 乱码
  • 网页
  • encoding
  • webclient
  • gb2312
  • uri
  • default

得分解答快速导航

  • 帖主:sinory
  • wxy0401
  • itfly

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo