2014-07-16 85 views
0

我正在使用C#WinForms應用程序從使用字符集ISO-8859-1的網頁中刮取一些數據。它適用於許多特殊字符,但不是全部。C#編碼:從他們的代碼中獲取特殊字符

(*下面我用冒號而不是分號,這樣你會看到,我看到的代碼,而不是它的價值),我看着頁面的源代碼

,我注意到,對於那些這將無法正確顯示,實際的代碼(例如&#363 :)在頁面源中,而不是該值。例如,在頁面源代碼中,我看到了Ry &#363:Murakami,但我期望看到RyūMurakami。此外,還有許多其他代碼以代碼的形式出現,如&#350:&#333:&#353:&#269:&#259:&#537:還有更多。

我試過使用WebClient.DownloadString和WebClient.DownloadData。

嘗試#1代碼:

using (WebClient wc = new WebClient()) 
{ 
wc.Encoding = Encoding.GetEncoding("ISO-8859-1"); 
string WebPageText = wc.DownloadString("http://www.[removed].htm"); 
// Scrape WebPageText here 
} 

嘗試#2代碼:

Encoding iso = Encoding.GetEncoding("ISO-8859-1"); 
Encoding utf8 = Encoding.UTF8; 
using (WebClient wc = new WebClient()) 
{ 
wc.Encoding = iso; 
byte[] AllData = wc.DownloadData("http://www.[removed].htm"); 
byte[] utfBytes = Encoding.Convert(iso, utf8, AllData); 
string WebPageText = utf8.GetString(utfBytes); 
// Scrape WebPageText here 
} 

我想保持特殊字符,所以請不要提出任何RemoveDiacritics例子。我錯過了什麼嗎?

+0

是否可以使用UTF-8而不是8859-1進行嘗試?這可能會起作用。 –

回答