自動偵測網頁文件的字元編碼:WebResponse與Headers["content-type"]

  • 1797
  • 0

自動偵測網頁文件的字元編碼:WebResponse與Headers["content-type"]

在Downloading content from the web using different encodings一文中使用二種方法自動偵測網頁文件的,其中第一種是使用WebResponse類別的屬性Headers["content-type"],我嘗試將程式碼移植至ASP.Net MVC4之後的程式碼如下:


        {            
            string result = string.Empty;

            WebRequest request = WebRequest.Create(url);
            WebResponse response = request.GetResponse();

            String charset = null;
            String ctype = response.Headers["content-type"];

            if (ctype != null)
            {
                int ind = ctype.IndexOf("charset=");
                if (ind != -1)
                {
                    charset = ctype.Substring(ind + 8);
                    result = charset;
                }
            }
            return result;
        }	

但是執行結果並無任何訊息。

之後再經由下列的程式碼與網址http://www.ltn.com.tw測試:


                result = result + "Header Name:" + response.Headers.Keys[i] + " Header value :" + response.Headers[i] + "<br/>";
            return result;

可以發現response.Headers["content-type"]的內容值是"text/html",而不是預期的"text/html; charset=UTF-8"。

結論:Downloading content from the web using different encodings的第一個方法並不適用(原因不明)。

 

參考資料來源:

[1]Downloading content from the web using different encodings
http://blogs.msdn.com/b/feroze_daud/archive/2004/03/30/104440.aspx

[2]HTML head 元素
http://www.wibibi.com/info.php?tid=414

[3]HTML meta http-equiv 屬性
http://www.wibibi.com/info.php?tid=416