From 772e87d6a6226180a4b2728514bff3d468cc3a93 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 12 Mar 2025 09:58:38 +0100 Subject: [PATCH] fix #1664 --- resources/text/CHANGELOG | 1 + src/librssguard-standard/src/parsers/rssparser.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index 0c8ece3d7..a5c718a2e 100644 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -16,6 +16,7 @@ Added: Fixed: * Enhanced QSS for tooltips for better readability. (#1637) +* RSS feed encoding detection was prone to errors. (#1664) * `Localization` page now displays correctly. (#1611) 4.8.0 diff --git a/src/librssguard-standard/src/parsers/rssparser.cpp b/src/librssguard-standard/src/parsers/rssparser.cpp index 3664cc2d4..5f93c4f35 100644 --- a/src/librssguard-standard/src/parsers/rssparser.cpp +++ b/src/librssguard-standard/src/parsers/rssparser.cpp @@ -163,10 +163,10 @@ QPair> RssParser::guessFeed(const QByteArray& const NetworkResult& network_res) const { QString xml_schema_encoding = QSL(DEFAULT_FEED_ENCODING); QString xml_contents_encoded; - QString enc = - QRegularExpression(QSL("encoding=\"([A-Z0-9\\-]+)\""), QRegularExpression::PatternOption::CaseInsensitiveOption) - .match(content) - .captured(1); + QString enc = QRegularExpression(QSL("encoding=[\"']([A-Z0-9\\-]+)[\"']"), + QRegularExpression::PatternOption::CaseInsensitiveOption) + .match(content) + .captured(1); if (!enc.isEmpty()) { // Some "encoding" attribute was found get the encoding