diff --git a/src/Extension/JsonExtension.php b/src/Extension/JsonExtension.php
index 68c9307..260dc2a 100644
--- a/src/Extension/JsonExtension.php
+++ b/src/Extension/JsonExtension.php
@@ -23,16 +23,32 @@ class JsonExtension implements Extension, FunctionExtension {
                 return "<?php echo htmlentities(json_encode($arguments, {$this->flags}), ENT_QUOTES, 'UTF-8') ?>";
         }
 
-        return "<?php echo json_encode($arguments, $flag) ?>";
+        $cls = static::class;
+
+        return "<?php echo json_encode(\\$cls::utf8($arguments), $flag) ?>";
     }
 
     public function exportFunctions(): array
     {
         return [
             'json' => function($arguments, ? int $flags = null) {
-                return json_encode($arguments,   \JSON_FORCE_OBJECT);
+                return json_encode($arguments, \JSON_FORCE_OBJECT);
             },
         ];
     }
 
+    public static function utf8($src) {
+
+        if (is_array($src)) {
+            foreach ($src as $key => $value) {
+                $src[$key] = static::utf8($value);
+            }
+        }
+        elseif (is_string($src)) {
+            return mb_convert_encoding($src, "UTF-8", "UTF-8");
+        }
+
+        return $src;
+    }
+
 }