簡體   English   中英

C#RSS閱讀器,處理'和類似

[英]C# RSS reader, dealing wtih ’ and similar

我正在嘗試使用XmlReader類在C#中編寫一個簡單的RSS提要閱讀器。 我遇到的問題是,根據我的理解,某些Feed會使用某些字符的HTML表示形式,例如’ 對於標題/描述中的撇號。 事實上,我正在看的一些報紙有一些文章只有一個常用的舊單引號用作撇號,有些用146替換它。我已經考慮過在顯示標題/描述之前進行字符串替換,但我' d真的寧願避免kludging並找到一個合適的解決方案,如果有的話,也適用於使用類似格式的其他角色。 任何建議將非常感謝。

您可以使用HttpUtility.HtmlDecode

您是否在閱讀Feed時使用System.ServiceModel.Syndication下的內置功能?

如果沒有 - 嘗試這個,我相信它應該自動解決我所描述的問題:

XmlReader reader = XmlReader.Create(ms);
// Configure XmlReader reader ...
// Create a new Syndication Feed
feed = SyndicationFeed.Load(reader);
SyndicationFeedFormatter formatter;

switch (format)
{
    case FeedFormat.Atom:
        formatter = new Atom10FeedFormatter(feed);
        break;

    default:
    case FeedFormat.Rss:
        formatter = new Rss20FeedFormatter(feed);
        break;
}

foreach (SyndicationItem item in formatter.Feed.Items)
{
     yield return item;
}

根據Unicode規范,146(0x92)不是撇號,它是“PRIVATE USE ONE”字符。

您可能有一些編輯器粘貼Word中的內容(啟用智能引號),它會以不同的編碼(Windows-1252)為您提供內容。

您應該嘗試指定正確的編碼(“Windows-1252”或代碼頁1252),它可能會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM