]> git.wh0rd.org - tt-rss.git/commitdiff
parser: only try to convert encoding if mbstring actually supports it
authorAndrew Dolgov <noreply@madoka.volgo-balt.ru>
Mon, 5 Sep 2016 12:02:31 +0000 (15:02 +0300)
committerAndrew Dolgov <noreply@madoka.volgo-balt.ru>
Mon, 5 Sep 2016 12:02:31 +0000 (15:02 +0300)
classes/feedparser.php

index 9247bf45062f17b25b94438ee674b7fb91fad324..3296381ed34d73289b48c0420de27549ab7525c5 100644 (file)
@@ -15,7 +15,11 @@ class FeedParser {
 
        function normalize_encoding($data) {
                if (preg_match('/^(<\?xml[\t\n\r ].*?encoding[\t\n\r ]*=[\t\n\r ]*["\'])(.+?)(["\'].*?\?>)/s', $data, $matches) === 1) {
-                       $data = mb_convert_encoding($data, 'UTF-8', $matches[2]);
+
+                       $encoding = strtolower($matches[2]);
+
+                       if (in_array($encoding, mb_list_encodings()))
+                               $data = mb_convert_encoding($data, 'UTF-8', $encoding);
 
                        $data = preg_replace('/^<\?xml[\t\n\r ].*?\?>/s', $matches[1] . "UTF-8" . $matches[3] , $data);
                }