- Rencoding UTF-8 to manage problematics strings in data to encode

This commit is contained in:
Dave M. 2022-10-10 15:27:54 +00:00
parent 4c3772376c
commit 5bac6cd843
1 changed files with 18 additions and 2 deletions

View File

@ -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 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 public function exportFunctions(): array
{ {
return [ return [
'json' => function($arguments, ? int $flags = null) { '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;
}
} }