MDL-36245 try to workaround buggy iconv() when converting text from utf-8 to utf-8
authorPetr Škoda <commits@skodak.org>
Thu, 8 Nov 2012 07:49:50 +0000 (08:49 +0100)
committerPetr Škoda <commits@skodak.org>
Sat, 15 Dec 2012 10:51:21 +0000 (11:51 +0100)
lib/textlib.class.php

index 77fafc1..ab0db3c 100644 (file)
@@ -161,8 +161,7 @@ class textlib {
 
     /**
      * Converts the text between different encodings. It uses iconv extension with //TRANSLIT parameter,
-     * falls back to typo3.
-     * Returns false if fails.
+     * falls back to typo3. If both source and target are utf-8 it tries to fix invalid characters only.
      *
      * @param string $text
      * @param string $fromCS source encoding
@@ -179,6 +178,10 @@ class textlib {
             return '';
         }
 
+        if ($toCS === 'utf-8' and $fromCS === 'utf-8') {
+            return fix_utf8($text);
+        }
+
         $result = iconv($fromCS, $toCS.'//TRANSLIT', $text);
 
         if ($result === false or $result === '') {