我正在尝试阅读使用 iso-8859-1 编码的 rss 提要。
我可以让所有元素都很好,问题是当我将它放在文本块中时,它不会显示所有字符。我不确定我做错了什么。我尝试了一些在谷歌上找到的解决方案,但这对我不起作用。我一定是遗漏了一些东西。这也是我第一次真正使用除 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;
}
虽然标题包含的字符也不能很好地显示。就像..我可以让编码部分工作。而不是这些字符:带问号的正方形、问号或单正方形。
不要误会我的意思,我是这方面的初学者。但是已经在网上发布的解决方案并没有为我解决。
请注意,我删除了编码部分,因为它不起作用:/如果有人能够帮助我,那就太棒了。