- 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,7 +23,9 @@ 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
@ -35,4 +37,18 @@ class JsonExtension implements Extension, FunctionExtension {
];
}
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;
}
}