Опитвам се да създам агрегатор на емисии, използвайки rome (1.0). Всичко работи, но имам проблеми с набора от символи на емисията. Разработвам го с помощта на java 1.6 върху mac os x (netbeans 6.9.1).
Използвам следния код за извличане на емисии:
InputStream is = new URL(_source).openConnection().getInputStream();
SyndFeed feed = (SyndFeed) input.build(new InputStreamReader(is, Charset.forName(_charset)));
Където _source
е rss източник (като http://rss.cnn.com/rss/edition.rss) и _charset
е UTF-8 или ISO-8859-1.
Работи, но някои сайтове с латински знаци (като португалски) не работят, дори ако използвам и двете кодировки.
Например емисии, прочетени от http://oglobo.globo.com/rss/plantaopais.xml винаги ще връща фиктивни знаци, както следва:
Secretário de São Paulo (UTF-8)
Secretário de São Paulo (ISO-8859-1)
Защо? Изпускам ли нещо?
Ако се опитам да използвам нещо като UTF-16, rome извежда грешка: com.sun.syndication.io.ParsingFeedException: Невалиден XML: Грешка на ред 1: Съдържанието не е разрешено в пролога.
Опитах други кодировки, като US-ASCII, без късмет...
Друг въпрос: Рим ли е най-доброто решение за работа с емисии (с помощта на java)? Най-новата версия от Рим е 1.0, която е от 2009 г. Изглежда, че е мъртва...
TIA,
Боб