`
chenjinlai
  • 浏览: 69236 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

处理中文rss解析的一点经验...

阅读更多
网上的所谓gb2312,实际字库是不全的,比如陶喆的喆就出不来,但是浏览器自己就能解析出来...
写代码就会出问题...要么用ignore参数忽略掉,但这只是回避了这个问题
我现在发现用rss解析的时候,要把它换成gb18030,就能解析出来~

比如用ruby:
require "iconv"
puts Iconv.iconv("GB2312","UTF-8",'陶喆')
显示错误: t.rb:2:in `iconv': "\xE5\x96\x86" (Iconv::IllegalSequence)
说明这个字库在gb2312里面是没有的,奈何咋出现在一篇encoding=gb2312的文章里面呢-_-

比如用python:
url = 'http://blogsearch.baidu.com/s?word=%D6%F7%B3%D6%C8%CB%D6%EC%B5%A4&tn=baidublogrss&bsm=0&rn=10'
import feedparser
c = feedparser.parse(url)
for e in c.entries:
print e.title
显示错误: 'gbk' codec can't encode character u'\xc3' in position 0: illegal multibyte sequence

修正如下就能正确显示:
require 'rss/2.0'
require "iconv"
url = 'http://blogsearch.baidu.com/s?word=%D6%F7%B3%D6%C8%CB%D6%EC%B5%A4&tn=baidublogrss&bsm=0&rn=10'
text = open(url).read
text.sub!(/gb2312/,'gb18030')
feed = RSS::Parser.parse(text.to_s,false)
for item in feed.items
puts Iconv.iconv("gb18030","utf-8",item.title)
end

这种问题也算是rails,python的rss lib里面中文处理领域的一些bug吧


--------------
chenjinlai
2008-05-13
分享到:
评论
1 楼 happy7259 2011-03-20  
感谢您这篇文章,让我解决了困扰5天的问题。。。

相关推荐

    rss.jar.zip_RSS_RSS j_rss.jar

    标题中的"rss.jar.zip_RSS_RSS j_rss.jar"提到了RSS和一个名为"j_rss.jar"的Java档案,这通常是一个包含RSS处理功能的Java库。RSS(Really Simple Syndication)是一种用于发布和订阅网站内容的XML格式。RSS源允许...

    网络安全相关的RSS订阅列表资料.zip

    网络安全相关的RSS订阅列表资料.zip网络安全相关的RSS订阅列表资料.zip网络安全相关的RSS订阅列表资料.zip网络安全相关的RSS订阅列表资料.zip网络安全相关的RSS订阅列表资料.zip网络安全相关的RSS订阅列表资料.zip...

    RSS解析For Android

    解析代码示例: import net.xfok.rss.parser.Feed; import net.xfok.rss.parser.Rss; ...... String url="http://www.xfok.net/news/rss.xml"; Rss rss=new rss(url); List<Feed> feeds=rss.getFeeds(); ...... 欢迎...

    RSS的解析类库.zip

    发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用,是一种描述和同步网站内容的格式。[1] RSS可以是以下三个解释的其中...

    rss.rar_ RSS asp.net_RSS asp.net_asp.net_asp.net rss_rss asp.n

    标题中的“rss.rar_ RSS asp.net_RSS asp.net_asp.net_asp.net rss_rss asp.n”暗示这是一个关于使用ASP.NET实现RSS(Really Simple Syndication)功能的压缩包资源。RSS是一种用于发布和订阅网站内容的XML格式,常...

    RSS 全文输出转换..源码.

    RSS(Really Simple ...以上只是一个基础的实现,实际应用中可能需要处理更复杂的场景,比如支持多种RSS版本、处理编码问题、错误处理、性能优化等。通过扩展和优化,你可以创建一个功能强大的RSS全文输出转换工具。

    rss(JAVA).zip_ rss_RSS_RSS Reader_RSS java downlo_java rss

    标题中的"rss(JAVA).zip_ rss_RSS_RSS Reader_RSS java downlo_java rss"揭示了这个压缩包是一个使用Java语言开发的RSS阅读器项目。RSS(Really Simple Syndication)是一种数据格式,用于发布新闻、博客和其他定期...

    iPhone xml rss解析

    通过熟练掌握XML解析和RSS处理,开发者能够构建出能动态获取和展示网络内容的应用,提高用户体验。在实际开发中,还可以考虑使用第三方库,如SSXMLParser或AFNetworking,它们提供了更简洁的API和额外的功能,有助于...

    RSS解析使用的相关JAR包

    在Java环境中,处理RSS馈送通常需要特定的库来解析XML内容。在这个场景中,我们有两个关键的JAR包和一个工具类用于RSS解析: 1. **rome-0.9.jar**: 这是Rome库的一个版本,它是一个Java库,专门设计用于处理RSS和...

    Android Rss订阅源码Demo.zip

    - **RSS解析**:源码中应该有一个类负责处理RSS解析,可能包含`parseRssFeed()`方法,它从URL加载XML内容并解析出文章标题、内容、链接等。 - **数据存储**:解析后的数据可能被存储在SQLite数据库中,以便离线...

    一个RSS解析器源码

    RSS解析器是用于读取和处理这些RSS feed的程序,将XML数据转换为人类可读的形式。 在“一个RSS解析器源码”这个主题中,我们主要会涉及到以下几个关键知识点: 1. **RSS格式**:RSS文件通常以XML格式存储,包含一...

    Android代码-Rss订阅源码Demo.zip

    - 数据解析:使用XML解析库(如`java.util.XMLPullParser`或第三方库如`Jsoup`)解析RSS feed。 3. **Android网络请求**: - 使用`java.net.URL`和`java.io.InputStream`进行基础的HTTP请求。 - 或者使用`...

    javascript 解析 rss 实例

    在本文中,我们将深入探讨如何使用JavaScript解析RSS(Really Simple Syndication) feed,这是一种常见的数据格式,用于发布新闻提要、博客更新和其他定期发布的内容。RSS订阅允许用户获取网站的最新内容而无需直接...

    jQuery解析和显示RSS订阅插件FeedEk.zip

    FeedEk 是个 jQuery 插件,解析和显示 RSS 和 Atom 订阅。FeedEk 使用 Google Feed API 来检索订阅。用户可以很方便的从任意的 domain 中获取订阅,不需要服务器端脚本。在线演示 标签:FeedEk

    rssfeeds-main.rar

    【描述】"rssfeeds-main.rar" 的描述简洁,没有提供具体细节,但我们可以推测这可能是一个项目或应用的源代码库,专注于处理RSS feeds的抓取、解析、存储或者展示。源码通常包括各种文件,如头文件、源代码文件、...

    该代码能完成解析XML文件的RSS解析器

    4. 错误处理:处理XML解析错误和无效的RSS feed,确保解析过程的健壮性。 5. 实用功能:如缓存已解析的内容,支持离线阅读;提供API供其他应用集成;可能还包括过滤、排序、搜索等功能。 6. 测试:全面的单元测试...

    phpcms rss调取内容,rss 全文输出怎么修改.doc

    【phpcms RSS全文输出修改详解】 在PHP CMS系统中,RSS(Really Simple Syndication)是一种标准,用于聚合网站内容,让订阅者通过RSS阅读器获取更新。然而,默认情况下,phpcms的RSS功能可能只提供文章的摘要,而...

    java解析rss具体信息

    在 Java 中解析 RSS 文件通常涉及到 XML 处理技术。下面的示例代码展示了如何使用 Java 的 Dom4j 库来解析 RSS 文件,并从中提取有用的信息。 #### 三、Dom4j 库简介 Dom4j 是一个开放源码的 Java 库,用于简化 ...

    Android应用源码SimpleReader-rss聚合阅读器.zip

    总结来说,SimpleReader-rss聚合阅读器项目涵盖了Android应用开发的诸多方面,包括UI设计、网络通信、数据存储、多线程处理以及用户交互等。通过分析和学习这个源码,开发者能深入理解Android应用开发的流程和技术...

    Android Rss订阅源码Demo.rar

    【Android RSS订阅源码Demo...通过研究这个Demo,开发者将能掌握如何在Android应用中实现RSS订阅功能,包括解析XML、处理网络请求、显示数据以及处理各种异常情况。这将是一个学习Android网络编程和XML处理的好起点。

Global site tag (gtag.js) - Google Analytics