我想讀取使用iso-8859-1編碼的rss訂閱源。閱讀iso-8859-1 RSS訂閱C#WP7
我可以得到所有元素的罰款,問題是當我把它放在一個文本塊,它不會顯示所有字符。我不確定我做錯了什麼。我已經嘗試了一些我在谷歌上找到的解決方案,但這對我並不適用。我必須錯過一些東西......這也是我第一次真正使用utf-16以外的其他工具。我以前從來不需要轉換任何東西。
該應用程序的工作原理如下I downloadstring async(WebClient)。所以當這被稱爲我得到一個字符串包含完整的RSS飼料。
我試着得到的字節,然後encoding.convert ..但我必須缺少的東西。
像這樣的一個樣本
WebClient RSS = new WebClient();
RSS.Encoding = Encoding.GetEncoding("ISO-8859-1");
RSS.DownloadStringCompleted += new DownloadStringCompletedEventHandler(RSS_DSC);
RSS.DownloadStringAsync(new Uri("some rss feed"));
public void RSS_DSC(object sender, DownloadStringCompletedEventArgs args)
{
_xml = XElement.Parse(args.Result);
foreach(XElement item in _xml.Elements("channel").Elements("item"))
{
feeditem.title = item.Element("title").Value;
// + all other items
}
}
我已經試過這藏漢
private void RSS_ORC(object sender, OpenReadCompletedEventArgs args)
{
Encoding e = Encoding.GetEncoding("ISO-8859-1");
Stream ez = args.Result;
StreamReader rdr = new StreamReader(ez, e);
XElement _xml = _xml = XElement.Parse(rdr.ReadToEnd());
feedlist = new List<Code.NewsItem>();
XNamespace dc = "http://purl.org/dc/elements/1.1/";
foreach (XElement item in _xml.Elements("channel").Elements("item"))
{
Code.NewsItem feeditem = new Code.NewsItem();
feeditem.title = item.Element("title").Value;
feeditem.description = item.Element("description").Value;
feeditem.pubdate = item.Element("pubDate").Value;
feeditem.author = item.Element(dc + "creator").Value;
feedlist.Add(feeditem);
}
listBox1.ItemsSource = feedlist;
}
雖然標題中包含未顯示任何良好的字符。喜歡..我可以得到編碼部分工作。而不是有這些字符:帶問號的方格,問號或單方格。
不要誤會我我是一個總的初學者。但是發佈在網上的解決方案並不能爲我解決問題。
請注意,我刪除了編碼部分,因爲它不工作:/ 如果有人能夠幫助我,這將是驚人的。
對不起,我遺漏了一些代碼。我確實指定了編碼。而對於XML我這樣做這樣 XElement _xml; _xml = XElement.Parse(args.Result); – helpme 2011-06-13 12:16:47
1.用完整的代碼更新你的問題。 2.你確定返回的字符串是iso8559-1嗎? – jgauffin 2011-06-13 12:22:27
那麼它在rss源文件中指定。所以我想是這樣? – helpme 2011-06-13 12:28:17