我正在尝试使用rome (1.0) 创建一个提要聚合器。一切正常,但我遇到了提要字符集的问题。我正在使用 java 1.6 在 mac os x (netbeans 6.9.1) 上开发它。
我正在使用以下代码来检索提要:
InputStream is = new URL(_source).openConnection().getInputStream();
SyndFeed feed = (SyndFeed) input.build(new InputStreamReader(is, Charset.forName(_charset)));
_source
rss 源(如http://rss.cnn.com/rss/edition.rss)在哪里,_charset
是 UTF-8 或 ISO-8859-1。
它可以工作,但是即使我同时使用两种编码,某些带有拉丁字符(如葡萄牙语)的网站也无法使用。
例如,从http://oglobo.globo.com/rss/plantaopais.xml读取的提要将始终返回虚拟字符,如下所示:
圣保罗秘密(UTF-8)
圣保罗秘密(ISO-8859-1)
为什么?我错过了什么吗?
如果我尝试使用 UTF-16 之类的东西,rome 会抛出错误:com.sun.syndication.io.ParsingFeedException: Invalid XML: Error on line 1: Content is not allowed in prolog。
我尝试过其他编码,比如没有幸运的 US-ASCII...
另一个问题:罗马是处理提要(使用 java)的最佳解决方案吗?来自罗马的最新版本是 2009 年的 1.0。似乎已经死了......
TIA,
鲍勃