当前位置:编程学习 > C#/ASP.NET >>

C#获取网页源码,自动判断网页字符集编码

1 using System.Net; 
 2 using System.IO; 
 3 using System.Text.RegularExpressions;
 4  private string getHtml(string url, string charSet)
 5 //url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码
 6  { WebClient myWebClient = new WebClient();
 7  //创建WebClient实例myWebClient 
 8 // 需要注意的:
 9  //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等
10  //这是就要具体问题具体分析比如在头部加入cookie 
11 // webclient.Headers.Add("Cookie", cookie); 
12 //这样可能需要一些重载方法。根据需要写就可以了
13  //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
14  myWebClient.Credentials = CredentialCache.DefaultCredentials;
15  //如果服务器要验证用户名,密码 
16 //NetworkCredential mycred = new NetworkCredential(struser, strpassword);
17  //myWebClient.Credentials = mycred; 
18 //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)
19  byte[] myDataBuffer = myWebClient.DownloadData(url); 
20 string strWebData = Encoding.Default.GetString(myDataBuffer);
21  //获取网页字符编码描述信息
22  Match charSetMatch = Regex.Match(strWebData, "<]*)charset=([^<]*)"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
23  string webCharSet = charSetMatch.Groups[2].Value; if (charSet == null || charSet == "") charSet = webCharSet; 
24 if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
25  strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);
26  return strWebData; 
27 }

    
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,