我使用RSS Feed作为数据源。我已经调整了如何检索数据以使用WebClient.DownloadStringAsync方法。在我使用XmlReader.Create方法之前。然后我使用结果作为数据源绑定到WPF中的TextBlock。
由于我在显示结果时进行了更改,因此所有特殊编码字符都显示为奇数字符。会喜欢一些帮助,确保我保持正确的编码,以便我的显示值没有奇怪的字符。
// WebClient code...
private void GetFeed(int i)
{
Uri _feedUri = new Uri(_feedList[i]);
webClient = new WebClient();
webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(stringStringCompletedEvent);
webClient.DownloadStringAsync(_feedUri, _feedTokenList[i]);
}
private void stringStringCompletedEvent(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
string xmlString = e.Result;
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
doc.Save(@"C:\CashierData\msnbc-top.xml");
}
}
以下是我之前使用XmlReader下载和解析Feed的代码。
XmlReader reader = XmlReader.Create(feed, settings);
答案 0 :(得分:2)
我怀疑问题是网络服务器没有正确指定内容编码。
您可以改为使用DownloadDataAsync
,然后使用
doc.Load(new MemoryStream(data));
(其中data
是字节数组)。然后,XML解析器将从二进制数据中自动检测XML编码,而不是信任Web服务器以了解正确的编码。