> Faqs > Cómo solucionar error PHP Malformed UTF-8 characters, possibly incorrectly encoded

Cómo solucionar error PHP Malformed UTF-8 characters, possibly incorrectly encoded

Tengo un error en PHP que no consigo solucionar:

Malformed UTF-8 characters, possibly incorrectly encoded

Me da en la línea que hago esto:

$summary = substr($info, 0, 50);
echo $summary;

La función substr() de PHP no es mía, por lo que no entiendo por qué me da este error en el código... ¿Alguna sugerencia?

Respuestas

Bueno, esa función substr() hace una ruptura de la cadena por un número de caracteres y lo que imagino que está pasando es que justamente la ruptura de la cadena ha pillado en un lugar que ha roto la codificación de UTF-8.

Hay una función de PHP que te puede ayudar a resolverlo, que justamente se ocupa de hacer la sub-cadena de manera segura, para que no se rompa la codificación del texto en formato UTF-8: mb_substr()

Es una función nativa de PHP que está desde PHP 4, por lo que no tendrás problema al usarla. Funciona exactamente igual que substr(), pero puedes consultar la documentación de PHP para más detalles.

Para solucionarlo, simplemente cambia tu código por este otro:

$summary = mb_substr($info, 0, 50);
echo $summary;
Miguel Angel
3295 146 215 17
Excelente! lo he probado y ahora funciona! gracias! es verdad funciona