allow usage of mbstring if iconv is missing, in epi-emulation mode
authorgggeek <giunta.gaetano@gmail.com>
Tue, 17 Jan 2023 16:56:10 +0000 (16:56 +0000)
committergggeek <giunta.gaetano@gmail.com>
Tue, 17 Jan 2023 16:56:10 +0000 (16:56 +0000)
src/Encoder.php

index b3a9cb9..ff5f99a 100644 (file)
@@ -99,12 +99,18 @@ class Encoder
                             return (object)$xmlrpcVal;
                         case 'string':
                             if (isset($options['extension_api_encoding'])) {
-                                $dval = @iconv('UTF-8', $options['extension_api_encoding'], $val);
+                                // if iconv is not available, we use mb_convert_encoding
+                                if (function_exists('iconv')) {
+                                    $dval = @iconv('UTF-8', $options['extension_api_encoding'], $val);
+                                } elseif (function_exists('mb_convert_encoding')) {
+                                    $dval = @mb_convert_encoding($val, $options['extension_api_encoding'], 'UTF-8');
+                                } else {
+                                    $dval = false;
+                                }
                                 if ($dval !== false) {
                                     return $dval;
                                 }
                             }
-                            //return $val;
                             // break through voluntarily
                         default:
                             return $val;