Я пытаюсь прочитать RSS-канал, который использует кодировку iso-8859-1.
Я могу получить все элементы в порядке, проблема в том, что когда я помещаю его в текстовый блок, он не будет отображать все символы. Я не уверен, что я делаю неправильно. Я пробовал несколько решений, которые я нашел в Google, но это не сработало для меня. Должно быть, я что-то упустил .. Это также первый раз, когда я действительно работаю с чем-то другим, кроме utf-16. Раньше мне никогда ничего не приходилось конвертировать.
Приложение работает следующим образом: я загружаю строку асинхронно (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;
}
Хотя заголовки содержат символы, которые отображаются плохо. Как ... Я могу заставить кодировку работать частично. Вместо этих символов: квадрат с вопросительным знаком, вопросительный знак или одиночный квадрат.
Не поймите меня неправильно, я абсолютный новичок в этом. Но решения, опубликованные в Интернете, не решают его для меня.
Обратите внимание, что я удалил часть кодирования, потому что она не работала: /
Если бы кто-нибудь смог мне помочь, это было бы удивительно.