2010-06-04 77 views
0

我正嘗試使用Grails和Rome構建RSS源。在Grails控制器的渲染方法中設置編碼

在我的控制器的RSS動作,我的最後一個命令是:

render(text: getFeed("rss_2.0"), contentType:"application/rss+xml", encoding:"ISO-8859-1 ") 

然而,當我瀏覽到我的飼料的URL,標題是:

<?xml version="1.0" encoding="UTF-8"?> 
    <rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"> 
    ... 

我對getFeed代碼()是類似於:

def getFeed(feedType) { 
    def currentFeedURL = params.url 

    def items = parserService.parse(new URL(currentFeedURL)) 

    def feedLink = "http://blablabla" 

    def feedEntries = [] 


    items.each { item -> 
     def entryTitle 
     if (item.price != null) 
      entryTitle = item.description + " - " + item.price + " euros" 
     else 
      entryTitle = item.description 

     def itemContent = new SyndContentImpl(type:'text/plain', value: getBody(item)) 

     SyndEntryImpl entry = new SyndEntryImpl(title: entryTitle, 
       link: item.link, 
       publishedDate: item.date, 
       description: itemContent) 
     feedEntries.add(entry) 

    } 

    def feed = new SyndFeedImpl(feedType: feedType, 
     encoding : "ISO-8859-1", 
     title: 'Some title', 
     link: 'http://acme.com', 
     description: 'Feed description', 
     entries: feedEntries) 


    StringWriter writer = new StringWriter() 
    SyndFeedOutput output = new SyndFeedOutput() 
    output.output(feed,writer) 
    writer.close() 
    return writer.toString() 
} 

而我的getBody(item)只是解析一個項目並輸出一些HTML格式文本。

有沒有人有關於爲什麼編碼是UTF-8,當我在渲染方法中將其設置爲ISO-8859-1的線索?

感謝您的幫助!

回答

0

'getFeed(「rss_2.0」)'是否會從其他來源拉xml?如果是這樣,它可以渲染該文件的編碼,而不是渲染指定什麼?