星期六, 3月 03, 2007

[.Net]讀取網頁(2)

上一篇最後留下 Encoding 的問題還沒解決,事實上已經有解了:你可以改用 DownloadString() 函數。

DownloadString() 是怎麼做到的呢?
他是先看 WebRequest 得到的 Header 裡面是否有 Content-Type ,如果有指定的話,再看他裡面是否指定 charset,如果有,就以此編碼去讀取 stream。
如果沒有指定的話呢?.Net 2.0 的 WebClient 多提供了 Encoding 屬性,換句話說,就會以 Encoding 屬性指定的編碼去讀取 stream。

事實上,大部分的 browser 並沒這麼笨~他還會先去偷看網頁內容是否有指定 Content-Type 這個 meta tag:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

如果有的話,就會以此 charset 所指定的編碼來讀取。

沒有留言: