2010-06-12 108 views
4

我有一個下載程序,從互聯網上下載頁面。 每個頁面的編碼是不同的,有些是UTF-8,有些是Unicode。 例如:a顯示'a'字符;我們應該將這些編碼轉換爲普通文本。如何將UTF-8轉換爲HTML實體中的文本?

我在c#中使用了UnicodeEncoding類,但他們不幫我。

如何將此編碼解碼爲真實的字符?有沒有可以轉換它的類或方法?

謝謝。

+0

順便說一句:沒有像沒有編碼的「普通文本」。強烈推薦:http://www.joelonsoftware.com/articles/Unicode.html – Alex 2010-06-12 13:30:20

+0

親愛的,Kenny請做好你的功課並糾正你的問題標題 - UTF8是編碼Unicode的幾種方法之一。這些也不像普通文本 - 可能你想說ANSI或ASCII。在這種情況下,不可能不丟失數據。 – sorin 2010-06-12 15:56:16

回答

6

這是html編碼的;嘗試HtmlDecode? (您需要System.Web.dll的引用)

1

您對HTML/XML轉義和UTF-8/Unicode之間的混淆。

如果頁面是有效的XML,生活將會變得更簡單 - 您可以將它解析爲任何其他XML文檔,然後獲取相關文本節點...所有XML轉義將在您獲得時「未轉義」文本。

如果它是任意的 - 也可能是無效的--HTML,那麼生活會有點困難。您可能首先需要將其標準化爲有效的HTML,然後解析並再次請求文本節點。

如果你能給我們一個更具體的例子,它會更容易建議你。

在其他答案中建議的HtmlDecode方法可能是您所需要的全部 - 但您應該首先了解發生了什麼。例如,你可能想只有解碼HTML的某些片段 - 如果你解碼整個文檔,那麼你最終可能會看到看起來它包含像HTML標籤,但實際上只包含在原始文件。