From: Andrew Dolgov Date: Mon, 6 Jul 2015 12:32:26 +0000 (+0300) Subject: fix article tags/labels not assigning properly on mysql because of the 4byte unicode... X-Git-Tag: 16.3~256^2 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=35c373549453d962907c14a81059a1de0dfc5e7a;p=tt-rss.git fix article tags/labels not assigning properly on mysql because of the 4byte unicode workaround --- diff --git a/include/functions2.php b/include/functions2.php index e212609d..1936d146 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 8797ee52..6eb4e6d9 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); + } } }