您只需強制在您請求的網頁上進行編碼。
隨着Web客戶端您執行以下操作:
using(WebClient webClient = new WebClient())
{
webClient.Encoding = Encoding.UTF8;
string s = webClient.DownloadString("http://wwww.li.ru");
}
隨着HttpWebResponse /請求:
HttpWebRequest webRequest = HttpWebRequest.CreateHttp("http://www.li.ru");
using (HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse())
{
using (Stream resStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(resStream, Encoding.UTF8);
return reader.ReadToEnd();
}
}
編輯:
就在固定的編碼延伸到下面的代碼:
var enc = Encoding.Default;
if (!string.IsNullOrEmpty(response.CharacterSet))
{
var charSet = response.CharacterSet;
if (charSet == "ISO-8859-1")
charSet = "windows-1251";
enc = Encoding.GetEncoding(charSet);
}
StreamReader reader = new StreamReader(resStream, enc);
return reader.ReadToEnd();
爲了進一步的說明,你可以給這個網頁一看: http://blogs.msdn.com/b/feroze_daud/archive/2004/03/30/104440.aspx
感謝您的快速反應,但如果我有幾頁有不同的編碼......這會讓其他頁面不可讀。 – Jake
看看我編輯的答案。 –
這個效果更好,但仍然有一個... http://www.jino.ru - 它仍然顯示我奇怪的符號。 – Jake