Это трудная задача. feedparser (Python) делает несколько вещей, чтобы попытаться правильно угадать правильный набор символов. Есть несколько мест, где это может быть предоставлено - например, заголовок XML и заголовок из транзакции HTTP (который переопределяет заголовок XML). Если его там нет (или он полностью недействителен, что довольно часто встречается), он возвращается к статистическому предположению. Есть еще один метод - попробуйте преобразовать его как UTF-8, а если это не удастся, преобразовать его из ISO-8859-1 в UTF-8 и попробуйте снова. Удачи!