我試圖用rome(1.0)創建一個feed聚合器。一切正常,但我正面臨Feed的字符集問題。我使用java 1.6在mac os x(netbeans 6.9.1)上開發它。字符集和羅馬問題(rss/atom feed)
我用下面的代碼來檢索提要:
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將總是返回空字符如下:
Secretrio德聖保羅(UTF-8)
Secretário代薩£聖保羅( ISO-8859-1)
爲什麼?我錯過了什麼嗎?
如果我嘗試使用類似UTF-16的東西,羅馬會拋出一個錯誤:com.sun.syndication.io.ParsingFeedException:無效的XML:第1行錯誤:內容不允許在prolog中使用。
我試過其他編碼,如US-ASCII不走運......
另一個問題是:羅馬對付飼料(用java)的最佳解決方案?從羅馬最新的版本是1.0是從2009年日好像是死了......
TIA,
鮑勃
這與http://stackoverflow.com/questions/8473410/while-parsing-rss-feed-through-rome-getting-content-is-not-allowed-in-prolog/14557915#14557915有關。問題中的內容不再有內容,所以我無法測試它是否由於字節排序問題。 – 2013-01-28 08:12:29