`
border
  • 浏览: 206668 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过rome读取feed,发现中文出现部分乱码。。

阅读更多

    用了rome 0,8的jar包,代码大部分来自于rome-samples-0.7 。
对了,放个rome的链接Rome's Home,可以直接去下载。还有就是在用rome的时候,把信息输出到xml文件里

<wbr>,部分出现乱码不知道是怎么回事<wbr>,我读的feed文件是utf-8的,我也是通过utf8读的<wbr>,但是还是有一部分乱码。今天找了一天也没有解决。。。

<!----> 1 /*
 2  * Created on 2006-7-11
 3  *
 4  * TODO To change the template for this generated file go to
 5  * Window - Preferences - Java - Code Style - Code Templates
 6  */
 7 package border;
 8 
 9 import java.io.FileWriter;
10 import java.io.Writer;
11 import java.net.URL;
12 import java.util.List;
13 
14 import com.sun.syndication.feed.synd.SyndContent;
15 import com.sun.syndication.feed.synd.SyndEntry;
16 import com.sun.syndication.feed.synd.SyndFeed;
17 import com.sun.syndication.fetcher.FeedFetcher;
18 import com.sun.syndication.fetcher.impl.FeedFetcherCache;
19 import com.sun.syndication.fetcher.impl.HashMapFeedInfoCache;
20 import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;
21 import com.sun.syndication.io.SyndFeedOutput;
22 
23 /**
24  * @author Border
25  * 
26  * TODO To change the template for this generated type comment go to Window -
27  * Preferences - Java - Code Style - Code Templates
28  */
29 public class RSSReader {
30     private static final String feedType = "rss_2.0";
31 
32     public static void main(String[] args) throws Exception {
33 
34         String filename = "E:\\ROME\\feed_fetcher2.xml";
35         try {
36             FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getInstance();
37             FeedFetcher feedFetcher = new HttpURLFeedFetcher();
38             SyndFeed feed = feedFetcher.retrieveFeed(new URL(
39                     "http://www.blogjava.net/border/Rss.aspx"));
40 
41             feed.setFeedType(feedType);
42             feed.setTitle("Border's Blog");
43             feed.setDescription(" java Web3D FreeBsd ");
44             feed.setAuthor(" By:border ");
45             feed.setLink(" http://www.blogjava.net/border ");
46 
47             List entryList = feed.getEntries();
48 
49             for (int i = 0; i < entryList.size(); i++) {
50                 SyndEntry entry = (SyndEntry) entryList.get(i);
51 
52                 entry.setPublishedDate(entry.getPublishedDate());
53                 entry.setTitle(new String(entry.getTitle().getBytes("utf-8")));
54                 entry.setLink(entry.getLink());
55 
56                 SyndContent content = entry.getDescription();
57                 content.setValue(new String(content.getValue()
58                         .getBytes("utf-8")));
59             }
60             SyndFeedOutput output = new SyndFeedOutput();
61             Writer writer = new FileWriter(filename);
62             output.output(feed, writer);
63 
64             System.out.println("The feed has been written to the file ["
65                     + filename + "]");
66             System.out.println(" ok !");
67 
68         } catch (Exception e) {
69             System.out.println("ERROR: " + e.getMessage());
70         }
71     }
72 }


下面是生成的xml文件:

<!----> 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <rss xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
 3   <channel>
 4     <title>Border's Blog</title>
 5     <link>http://www.blogjava.net/border</link>
 6     <description>java Web3D FreeBsd</description>
 7     <language>zh-cn</language>
 8     <pubDate>Thu, 06 Jul 2006 11:05:25 GMT</pubDate>
 9     <dc:creator>By:border</dc:creator>
10     <dc:date>2006-07-06T11:05:25Z</dc:date>
11     <dc:language>zh-cn</dc:language>
12     <item>
13       <title>免费MySQL数据库申譿</title>
14       <link>http://www.blogjava.net/border/archive/2006/07/06/57015.html</link>
15       <description> &lt;a href="http://www.db4free.net/"&gt;&lt;img alt="" src="http://www.kuangfeng.cn/blog/wp-content/uploads/2006/03/db4free.jpg" align="left" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.db4free.net/"&gt;Db4free&lt;/a&gt;:专业提供免费数据库服务,支持 MySQL 5.0ﺿ5.1,支持使用Phpmyadmin进行管理,以后还将扩展支持PostgreSQL, Firebird 等数据库.&lt;img src ="http://www.blogjava.net/border/aggbug/57015.html" width = "1" height = "1" /&gt;&lt;br&gt;&lt;br&gt;&lt;div align=right&gt;&lt;a style="text-decoration:none;" href="/border/" target="_blank"&gt;Border&lt;/a&gt; 2006-07-06 19:05 &lt;a href="/border/archive/2006/07/06/57015.html#Feedback" target="_blank" style="text-decoration:none;"&gt;发表评论&lt;/a&gt;&lt;/div&gt;</description>
16       <pubDate>Thu, 06 Jul 2006 11:05:00 GMT</pubDate>
17       <guid isPermaLink="false">http://www.blogjava.net/border/archive/2006/07/06/57015.html</guid>
18       <dc:creator>Border</dc:creator>
19       <dc:date>2006-07-06T11:05:00Z</dc:date>
20     </item>
21     <item>
22       <title>刚刚大厦晃的利害,是不是有些地震叿 --  北京</title>
23       <link>http://www.blogjava.net/border/archive/2006/07/04/56502.html</link>
24       <description>      刚刚大厦晃的利害,是不是有些地震叿 ,在17层感觉比较厉害,不知道在北京的其他同志有没有注意到὿&lt;img src ="http://www.blogjava.net/border/aggbug/56502.html" width = "1" height = "1" /&gt;&lt;br&gt;&lt;br&gt;&lt;div align=right&gt;&lt;a style="text-decoration:none;" href="/border/" target="_blank"&gt;Border&lt;/a&gt; 2006-07-04 12:20 &lt;a href="/border/archive/2006/07/04/56502.html#Feedback" target="_blank" style="text-decoration:none;"&gt;发表评论&lt;/a&gt;&lt;/div&gt;</description>
25       <pubDate>Tue, 04 Jul 2006 04:20:00 GMT</pubDate>
26       <guid isPermaLink="false">http://www.blogjava.net/border/archive/2006/07/04/56502.html</guid>
27       <dc:creator>Border</dc:creator>
28       <dc:date>2006-07-04T04:20:00Z</dc:date>
29     </item>
30     <item>
31       <title>通过js等比扩大图片的比伿</title>
32       <link>http://www.blogjava.net/border/archive/2006/07/03/56279.html</link>
33       <description>摘要:    在做web庿发的时㿙,显示图片是经常用到ῂ在默认的情况下图片是扩充,但是有的时㿙显示效果会不如人意。有时容器的大小是固定的,我们要把图片等比扩大὿&lt;a href='http://www.blogjava.net/border/archive/2006/07/03/56279.html'&gt;阅读全文&lt;/a&gt;⾿&lt;img src ="http://www.blogjava.net/border/aggbug/56279.html" width = "1" height = "1" /&gt;&lt;br&gt;&lt;br&gt;&lt;div align=right&gt;&lt;a style="text-decoration:none;" href="/border/" target="_blank"&gt;Border&lt;/a&gt; 2006-07-03 12:13 &lt;a href="/border/archive/2006/07/03/56279.html#Feedback" target="_blank" style="text-decoration:none;"&gt;发表评论&lt;/a&gt;&lt;/div&gt;</description>
34       <pubDate>Mon, 03 Jul 2006 04:13:00 GMT</pubDate>
35       <guid isPermaLink="false">http://www.blogjava.net/border/archive/2006/07/03/56279.html</guid>
36       <dc:creator>Border</dc:creator>
37       <dc:date>2006-07-03T04:13:00Z</dc:date>
38     </item>
39   </channel>
40 </rss>
41 
42 


By:border
</wbr></wbr></wbr>
分享到:
评论
1 楼 gabriel80 2010-07-30  
你保存的xml文件的字符不对。

相关推荐

    Rome使用简单说明二(部分关键源码分析)

    《Rome使用简单说明二(部分关键源码分析)》 在Java开发中,Rome是一个用于处理RSS和Atom feeds的开源库。它提供了一系列的API,使得开发者能够轻松地读取、创建和更新这些标准格式的feed。本文将重点探讨Rome库中的...

    rome,用于rss和atom提要的java库.zip

    你可以通过它们读取XML文件或从URL获取feed,并将其转换为Java对象进行处理。 - `SyndFeed`: 表示RSS或Atom feed的模型类,包含了feed的所有元数据和条目(entries)。 - `SyndEntry`: 表示feed中的单个条目,包括...

    rome 实现rss订阅,中文出错解决方法

    项目中的其他部分,如数据库连接、文件读写等,都应使用相同的字符编码,以避免在数据传输和转换过程中出现乱码。 另外,有时问题可能出在环境差异上,比如在不同操作系统或服务器上的字符集设置不同。这时,可以在...

    java使用Rome解析Rss的实例

    接下来,我们将通过一个简单的实例来展示如何使用Rome解析RSS feed。首先,我们需要导入必要的库: ```java import com.rometools.rome.feed.synd.SyndFeed; import com.rometools.rome.io.SyndFeedInput; import ...

    RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java

    描述中提到的“java相关RSS 部分资料已经生成代码和jar包”,意味着这个压缩包内不仅包含Rome库的jar文件,还可能有开发者编写的示例代码,帮助我们理解和使用RSS功能。这可能是几个独立的Java类或一个完整的项目,...

    rome源码包和jar包

    - ROME1.0SRC.rar包含的是Rome的源代码,通过阅读源码,开发者可以深入了解其内部工作原理,包括如何解析XML结构,如何构建和操作Feed对象等。 - 源码学习有助于理解数据模型,如`Feed`, `Entry`, `Category`等类...

    rome-1.0RC2rss解析

    8. **版本升级与兼容性**:尽管1.0RC2是一个早期版本,但随着Rome的后续版本发布,可能会出现一些功能增强和错误修复。因此,开发者应关注Rome的最新版本,以确保应用能够利用最新的改进并保持兼容性。 总的来说,...

    rome-1.0.jar rome.jar 源码

    【标题】"rome-1.0.jar 与 rome.jar:源码解析" 【内容】 在Java开发中,库和...通过仔细研究"rome-1.0.jar"和"rome.jar"的源码,开发者可以更好地利用这些工具,同时也能为未来可能出现的类似项目提供宝贵的参考。

    可以用的jdom+rome.jar

    JDOM和ROME的结合使用,可以实现从XML文档中提取RSS Feed,然后通过ROME解析这些Feed,提取出文章标题、描述、链接等信息,甚至可以进一步处理这些信息,比如存入数据库或进行数据分析。这样的组合,为开发者提供了...

    jdom和rome1.0包

    通过使用ROME,开发者可以轻松地从网站抓取和解析RSS feed,或者创建自己的RSS feed并发布到网络。 在描述中提到的“rome开发rss”,意味着这个压缩包可能包含了使用ROME库进行RSS开发的相关示例或代码。JDOM的提及...

    rome-0.9.jar

    4. **错误处理**:在处理feed时,Rome提供了一套完整的异常处理机制,帮助开发者处理解析过程中可能出现的问题,如格式错误、网络问题等。 "rome-0.9.jar.zip"是这个库的压缩文件,通常包含了"rome-0.9.jar"本身...

    利用Rome解析Rss

    Rome 是一个基于 Java 的开源项目,提供了一组 Atom/RSS 工具类,以使得用 Java 可以更方便和快捷地操作大部分 Syndication 格式数据。Rome 需要 JDK1.4 以上版本和 JDom.jar。 Rome 的主要功能包括解析器和生成器...

    RSS开源框架ROME1.0下载集合

    在开发过程中,为了简化RSS处理,出现了各种开源框架,其中ROME(Really Simple Syndication)是一个流行的Java库。 **ROME框架** ROME1.0是该框架的一个版本,它提供了对RSS和Atom feeds的全面支持。通过使用ROME...

    jdom+rome JAR包

    1. **读取XML文件**:通过SAX或DOMBuilder,JDOM可以从XML文件中构建一个Document对象。 2. **创建XML文档**:利用Element、Attribute等类,可以方便地构建XML文档结构。 3. **修改XML文档**:找到特定的元素或属性...

    rome0.9

    2. **解析RSS和Atom Feed**:Rome可以读取RSS和Atom格式的feed,将其解析为Java对象,方便进行进一步的数据处理和分析。 3. **模版支持**:Rome支持使用模版来生成feed,这允许开发者自定义feed的结构和样式,满足...

    rome-1.0.jar.zip

    使用"rome-1.0.jar"时,开发者首先需要将其添加到项目类路径中,然后就可以通过导入相关类和方法来处理RSS或Atom feed。罗马库提供了解析、构建和转换feed的工具,例如,它可以将XML数据解析为Java对象,也可以将...

    jdom+rome-0.9 jar包合集

    最后,使用ROME将这个JDOM结构转换成RSS feed对象,可以进一步保存为XML文件或直接发布到服务器。 总的来说,"jdom+rome-0.9 jar包合集"是一个包含处理XML和构建RSS feeds所需库的打包资源。无论是为了解析XML文档...

Global site tag (gtag.js) - Google Analytics