Veröffentlicht am Schreib einen Kommentar

PHP 8.2 ohne URL Encoding utf8_encode

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

Kommentar verfassen