2010-06-04 10 views
0

J'essaye de créer un flux RSS en utilisant Grails et Rome.Définition de l'encodage dans la méthode de rendu du contrôleur Grails

Dans l'action rss de mon contrôleur, ma dernière commande est:

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

Cependant, lorsque je navigue à l'URL de mon alimentation, l'en-tête est:

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

Mon code pour getFeed() est quelque chose comme:

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() 
} 

et mon getBody (article) est un élément d'analyse syntaxique juste et la sortie du code HTML formaté texte.

Est-ce que quelqu'un a une idée sur pourquoi l'encodage est UTF-8 quand je l'ai mis à ISO-8859-1 dans la méthode de rendu ???

Merci pour votre aide!

Répondre

0

Le 'getFeed ("rss_2.0")' pourrait-il extraire le XML d'une autre source? Si oui, pourrait-il rendre l'encodage de ce fichier au lieu de ce que le rendu spécifie?