una strip_tags str_replace str separar remove eliminar ejemplo caracteres cadena php string utf-8 multibyte mbstring

php - str_replace - strip_tags()



PHP mb_substr() no funciona correctamente? (2)

Este codigo

print mb_substr(''éxxx'', 0, 1);

imprime un espacio vacío :(

Se supone que debe imprimir el primer carácter, é . Esto parece funcionar sin embargo:

print mb_substr(''éxxx'', 0, 2);

Pero no está bien, porque (0, 2) significa 2 caracteres ...


En la práctica, he encontrado que, en algunos sistemas, las funciones de múltiples bytes están predeterminadas según ISO-8859-1 para la codificación interna. Eso efectivamente arruina su capacidad para manejar texto de múltiples bytes.

Establecer un buen valor predeterminado probablemente solucionará este y otros problemas:

mb_internal_encoding(''UTF-8'');


Intente pasar el parámetro de codificación a mb_substr, como tal:

print mb_substr(''éxxx'', 0, 1, ''utf-8'');

La codificación nunca se detecta automáticamente.