Java 定义RSS提要编码

Java 定义RSS提要编码,java,google-app-engine,encoding,groovy,google-reader,Java,Google App Engine,Encoding,Groovy,Google Reader,我试图使用GoogleReaderAPI处理RSS提要,但问题是,即使提要编码是UTF-8,它也会以不可读的格式返回 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 Input

我试图使用GoogleReaderAPI处理RSS提要,但问题是,即使提要编码是UTF-8,它也会以不可读的格式返回

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上运行。

如果使用更惯用的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 )

我们需要更多的信息,而不是以无法读取的格式返回的信息。会发生什么?你怎么确定它不可读?你有例外吗?stacktrace是什么?@Nick非英语字符的渲染不正确,其他的是ok我正在使用这个例子->,我在项目中也有同样的问题。很好,我不知道为什么,但现在可以了。原因可能是什么?不确定。。。流->读卡器字符集链可能有问题。看起来还行,只是有点啰嗦-如何在SpringMVC中使用它?使用->此示例->