Tabla de contenidos
Resumen
Se explicara la manera correcta de acortar strings que se encuentran codificados en formato utf-8.
Ambiente
-PHP
Explicación
Normalmente cuando se requiere extraer o acortar una cadena de datos se utiliza la función de php llamada substr
substr(string$string, int$start, int$length= ?)
Devuelve una parte del string definida por los parámetros start y length.
El problema es que esta función al utilizarlo con cadenas de datos codificadas en formato UTF-8 cuenta mal los carácteres, por lo que podría generar carácteres dañados y mostrandolos de esta manera: �.
Para evitar estos inconvenientes de deberá usar la función mb_substr. Esta función cuenta correctamente los caracteres y retorna la cantidad correcta.
mb_substr( string$str, int$start, int$length= NULL, string$encoding= mb_internal_encoding() )
Realiza una operación substr() multibyte de forma segura basada en el número de caracteres. La posición se cuenta desde el principio de str. La posición del primer carácter es 0. La posición del segundo es 1, etc.
Ejemplo
$utf8string = "Buenos dÃas compañeros"; echo substr($utf8string,0,17); // output Buenos dÃas co echo mb_substr($utf8string,0,17,'UTF-8'); //output Buenos dÃas comp
0 comentarios