2014年4月10日 星期四

[C#] 解析網頁 亂碼去去


  1. public static string GetInnerHtml(string url)
  2.     {
  3.         WebClient wc = new WebClient();
  4.         wc.Credentials = CredentialCache.DefaultCredentials;
  5.         byte[] htmlbuffer = wc.DownloadData(url);
  6.         Regex regex = new Regex("charset\\s*=\\s*[\\W]?\\s*([\\w-]+)", RegexOptions.IgnoreCase);
  7.  
  8.         string content = Encoding.Default.GetString(htmlbuffer);
  9.         Encoding encoding = Encoding.Default;
  10.         if (regex.IsMatch(content))
  11.         {
  12.             encoding = Encoding.GetEncoding(regex.Match(content).Groups[1].Value.Trim());
  13.             content = encoding.GetString(htmlbuffer);
  14.         }
  15.         else
  16.         {
  17.             content = Encoding.Default.GetString(htmlbuffer);
  18.         }
  19.         return content;
  20.     }

沒有留言:

張貼留言