自動偵測網頁文件的字元編碼: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
http://www.wibibi.com/info.php?tid=414
[3]HTML meta http-equiv 屬性
http://www.wibibi.com/info.php?tid=416