ISO-8859-1 zu UTF-8 mit mbstring
Bis PHP 8.2 war folgende Funktion möglich:
utf8_encode($string);
Ab PHP 8.2 bietet mbstring eine Lösung an:
mb_convert_encoding($string, “UTF-8”, “ISO-8859-1”);
Alternative Funktion ohne utf8_encode:
function iso8859_1_to_utf8(string $string): string {
$s .= $string;
$len = \strlen($s);
for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
switch (true) {
case $s[$i] < “\x80”: $s[$j] = $s[$i]; break;
case $s[$i] < “\xC0”: $s[$j] = “\xC2”; $s[++$j] = $s[$i]; break;
default: $s[$j] = “\xC3”; $s[++$j] = \chr(\ord($s[$i]) – 64); break;
}
}
return substr($s, 0, $j);
}
https://php.watch/versions/8.2/utf8_encode-utf8_decode-deprecated