0

お気に入りの Web サイトの 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

おそらく .NET のEncoding.Convertメソッドを使用して、e.Resultにある文字列を再エンコードすることもできます。しかし、xml-code に encoding="ISO-8859-2" 属性があると想定しているため、これではおそらく十分ではありません。そのため、おそらく String.Replace その属性を別のものに置き換える必要もあります。

または、属性を別のものに置き換えて、それが機能するかどうかを確認してください。e.Result.Replace("ISO-8859-2", "UTF-8") を実行して、何が起こるかを確認してください。それでもうまくいかない場合は、文字列エンコーディングを別のエンコーディングに変換してから置換するという最初のオプションを試してください。

于 2013-02-04T12:25:58.737 に答える