diff --git a/include/functions2.php b/include/functions2.php index e212609db..1936d146d 100644 --- a/include/functions2.php +++ b/include/functions2.php @@ -1483,9 +1483,9 @@ $tag = preg_replace('/[\'\"\+\>\<]/', "", $tag); -// $tag = str_replace('"', "", $tag); -// $tag = str_replace("+", " ", $tag); - $tag = str_replace("technorati tag: ", "", $tag); + if (DB_TYPE == "mysql") { + $tag = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $tag); + } return $tag; } diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 8797ee523..6eb4e6d98 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -761,7 +761,11 @@ // Workaround: 4-byte unicode requires utf8mb4 in MySQL. See https://tt-rss.org/forum/viewtopic.php?f=1&t=3377&p=20077#p20077 if (DB_TYPE == "mysql") { foreach ($article as $k => $v) { - $article[$k] = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $v); + + // i guess we'll have to take the risk of 4byte unicode labels & tags here + if (!is_array($article[$k])) { + $article[$k] = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $v); + } } }