繁体   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