diff --git a/NEWS.mdtext b/NEWS.mdtext index 5aafb37..c82a54b 100644 --- a/NEWS.mdtext +++ b/NEWS.mdtext @@ -4,6 +4,9 @@ ## Bugfixes +- Ensure that IDF does not break UTF-8 encoded strings when + shortening them for view rendering (issue 785) + ## Documentation ## Translations diff --git a/src/IDF/Views/Source.php b/src/IDF/Views/Source.php index 81760a0..38913f0 100644 --- a/src/IDF/Views/Source.php +++ b/src/IDF/Views/Source.php @@ -506,12 +506,12 @@ function IDF_Views_Source_PrettySizeSimple($size) function IDF_Views_Source_ShortenString($string, $length) { $ellipse = "..."; - $length = max(strlen($ellipse) + 2, $length); + $length = max(mb_strlen($ellipse) + 2, $length); $preflen = ceil($length / 10); if (mb_strlen($string) < $length) return $string; - return substr($string, 0, $preflen).$ellipse. - substr($string, -($length - $preflen - mb_strlen($ellipse))); + return mb_substr($string, 0, $preflen).$ellipse. + mb_substr($string, -($length - $preflen - mb_strlen($ellipse))); }