2010-09-14 104 views
0

我正在嘗試使用Google Reader API處理RSS提要,但問題是,即使提要編碼是UTF-8,它也會以不可讀的格式返回。定義RSS提要編碼

resp.contentType = "text/xml" 
resp.characterEncoding = "UTF-8" 

URL url = new URL("http://www.google.com/reader/public/atom/feed/" + rss); 
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), Charset.forName("UTF-8"))); 
String line; 
StringBuilder content = new StringBuilder(); 
while ((line = reader.readLine()) != null) { 
    content.append(line + "\n"); 
} 
reader.close(); 
def feed = new XmlParser().parseText(content.toString()) 
... 
new XmlNodePrinter(resp.writer).print(feed) 

是否有任何額外的編碼設置,我錯過了?該代碼在Google App Engine上運行。

+1

我們將需要比「以不可讀的格式返回」更多的信息。怎麼了?你怎麼確定它是不可讀的?你會得到一個異常,什麼是堆棧跟蹤? – 2010-09-14 09:21:10

+1

@Nick非英文字符渲染不正確,其他都沒問題 – Vitaliy 2010-09-14 13:19:11

+0

我正在使用這個例子 - > http://www.mkyong.com/spring-mvc/spring-3-mvc-and-rss-feed-example /,我在項目中遇到同樣的問題。 – 2017-03-28 11:46:20

回答

0

如果你使用更習慣的Groovy,會發生什麼?我認爲您的所有代碼都可以替換爲:

def feed = new URL("http://www.google.com/reader/public/atom/feed/$rss").withReader('UTF-8') { r -> 
    new XmlParser().parse(r) 
} 

... 

new XmlNodePrinter(resp.writer).print(feed) 
+0

非常好,我不知道爲什麼,但現在沒關係。可能是什麼原因? – Vitaliy 2010-09-14 13:20:17

+0

不確定...流 - >閱讀器charset鏈可能已經出現了問題。看起來不錯,只是有點長囉;-) – 2010-09-14 13:23:31

+0

如何在春天mvc中使用它?用 - >這個例子 - > http://www.mkyong.com/spring-mvc/spring-3-mvc-and-rss-feed-example/ – 2017-03-28 11:39:55