utf8_encode
Publicado por Jaume (2 intervenciones) el 14/08/2024 17:49:41
Recientemente he actualizado el servidor a php8.3 y me he encontrado con que la funcion utf8_encode ya no funciona, he estado buscando por la red y he encontra una funcion sustitutiva, esta:
function iso8859_1_to_utf8(string $s): string {
$s .= $s;
$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);
}
..pero resulta que no trabaja igual, no me convierte las cadenas correctamente, antes si me funcionaba, ahora todo se me ha descolocado. Saben de otra funcion que vaya bien ?
GRACIAS
function iso8859_1_to_utf8(string $s): string {
$s .= $s;
$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);
}
..pero resulta que no trabaja igual, no me convierte las cadenas correctamente, antes si me funcionaba, ahora todo se me ha descolocado. Saben de otra funcion que vaya bien ?
GRACIAS
Valora esta pregunta


0