I’ve got a xml feed which is technically not valid (auto-generated by a tool I do not control) which is accessible here
Putting it through https://fakecake.org/myfeedsucks/ does not indicate any problems (I guess, thanks to nice error handling from the feed parser for such feeds).
Unfortunately this error handling is too forgiving for putting the content in PostgreSQL. This fails with error:
SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0x93#0 /var/www/tt-rss/classes/rssutils.php(852): PDOStatement->execute(Array)
#1 /var/www/tt-rss/classes/rssutils.php(148): RSSUtils::update_rss_feed(210, true, false)
#2 /var/www/tt-rss/update.php(205): RSSUtils::update_daemon_common(50)
#3 {main}
Full log at https://csachweh.de/share/debug_feed.txt
I would expect, if the feedparser is forgiving XML failures, the escaping should be able to handle this too. Or otherwise mark the whole feed as defective because you only see this update failure by looking into the logs.
Nevertheless, I will try to reach out to the programmer of the tool I am using.
tt-rss version (including git commit id):
current git version cb0c81729d30daae48f15c4d9dbc026aea506710
on
Debian Stretch with PHP 7.0.33-0+deb9u3 and PostgreSQL 9.6