代码之家  ›  专栏  ›  技术社区  ›  Philippe

在grails控制器的render方法中设置编码

  •  0
  • Philippe  · 技术社区  · 14 年前

    我正在尝试使用grails和rome构建rss提要。

    在我的控制器的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)只是解析一个item并输出一些html格式的文本。

    当我在render方法中将其设置为iso-8859-1时,是否有人知道为什么编码是utf-8????

    谢谢你的帮助!

    1 回复  |  直到 14 年前
        1
  •  0
  •   Vinny    14 年前

    getfeed(“rss 2.0”)是否可以从另一个源中提取xml?如果是,它是否可以呈现该文件的编码,而不是指定什么呈现?

    推荐文章