程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#獲取網頁源碼,自動判斷網頁字符集編碼

C#獲取網頁源碼,自動判斷網頁字符集編碼

編輯: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 }

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved