2010-01-07 27 views
1

我知道這可能很簡單,並且可能以前曾被問過,但我無法提出解決方案。解碼XML中的擴展字符

我解析了一些包含HTML作爲CDATA塊的RSS源。一個例子是:http://g.msn.com/1ewenus50/news2

Feed變化很大,但其中幾乎總是有一些擴展字符。例如,如果我製作一個簡單的控制檯應用程序並使用WebClient.DownloadString並查看結果,我會看到類似於

「瞭解到涉嫌企圖通過Flight 253轟炸機的極端主義鏈接,而他在聖誕節中途飛行時日。NBCA€™的薩凡納格思裏reports.Â(今日秀)」

但是這些怪異的人物應該是撇號,引號,長破折號等

是什麼讓這些正確解碼的伎倆?

如果不清楚,我正在使用C#/ .NET。最終,這些內容將在Silverlight中呈現,但我在完整的.NET 3.5運行時中也看到了這個問題。

+0

」之前可能有人問過「你看過了嗎?看看它有沒有? – AnthonyWJones 2010-01-07 18:28:04

+0

我確實搜索了一下,但沒有找到相同的問題。但這並不意味着它不在那裏。 – 2010-01-07 18:35:22

+0

瀏覽器中的內容是否正常顯示? – AnthonyWJones 2010-01-07 18:36:51

回答

0

將其下載到二進制文件中,並將其解析爲XML。那應該得到它的權利 - XML文檔應該是自我描述的編碼方面,但我不會讓它通過一些網絡服務器來宣傳它(在標題中)具有不同的編碼,這會混淆DownloadString

通常,當涉及到XML時,儘可能在XML API中執行操作,而不是在原始數據中執行操作。

+0

你走了。謝謝。這工作: byte [] bar = w.DownloadData(new Uri(「http://g.msn.com/1ewenus50/news2」)); string baz = new UTF8Encoding()。GetString(bar); var x = XDocument.Parse(baz); – 2010-01-07 18:39:45

0

您可能使用了錯誤的文本編碼......我不確定您使用的是哪一個或哪一個是正確的,但這可能會讓您走上正軌。 「