不過,如果用這方法,有兩個缺點:
- .Net 1.1 不適用,因為 class library 沒提供。
- 當直接使用 DocumentText 屬性的時候,WebBrowser 沒有轉換編碼,而是直接以 ascii 傳回。
- 必須是 Windows form 應用程式
那麼,我們要怎麼自行轉換編碼呢?
首先利用 Reflector 來反組譯一下 DocumentText 屬性,這下就可以很清楚看到他是以 StreamReader 去讀取 DocumentStream。
所以當我們確信網頁的編碼是 UTF-8 時,就可以這麼寫了:
Stream documentStream = webBrowser1.DocumentStream;
if (documentStream == null)
return "";
StreamReader reader = new StreamReader(documentStream, Encoding.UTF8);
documentStream.Position = 0;
string documentText = reader.ReadToEnd();
沒有留言:
張貼留言