0

我想为我最喜欢的网站创建 RSS,但问题是它的 RSS XML 包含解析时破坏整个 RSS 的第一行。

我收到此错误:

System does not support 'ISO-8859-2' encoding. Line 1, position 31.

代码:

void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
{
      SyndicationFeed feed;
      try {
           using (XmlReader reader = XmlReader.Create(e.Result)) { 
               // I WOULD LIKE to delete some rows from the Result
               feed = SyndicationFeed.Load(reader);
               lista.ItemsSource = feed.Items;
            }
       } catch (WebException we) { 
            MessageBox.Show("The internet connection is down.");
       }
}
4

2 回答 2

2

显然 WP7 中使用的 .NET 框架不支持除UTF-8和之外的其他编码ISO-8859-1。您可以做的是使用此工具生成您自己的编码实现。

StreamReader然后,您通过使用自定义编码绕道读取流:

using ( StreamReader sReader = new StreamReader(e.Result, new CustomEncoding()) )
using ( XmlReader xReader = XmlReader.Create(sReader) ) 
{ 
    //...
}
于 2013-02-04T12:59:09.263 回答
1

您可以尝试重新编码e.Result中的字符串,或许可以使用 .NET 中的Encoding.Convert方法。但这可能还不够,因为我假设 xml 代码中有一个 encoding="ISO-8859-2" 属性。所以你可能还需要做一个字符串。用其他东西替换那个属性。

或者只是尝试用另一个属性替换该属性,看看是否有效。做一个 e.Result.Replace("ISO-8859-2", "UTF-8") 看看会发生什么。如果这不起作用,请尝试将字符串编码转换为另一个,然后再进行替换的第一个选项。

于 2013-02-04T12:25:58.737 回答