PIFIAS DE PHP Y MYSQL

Está de moda usar la codificación UTF8 y PHP/MYSQL no van a ser menos (aunque destruyan el trabajo de todos).

Con los cambios de la versión 5.4 de PHP dan ganas de no volver a usar ese lenguaje y lo mismo sucede cuando te obligan al intercambio de datos con MYSQL en UTF8.

Lo peor es que muchos proveedores de alojamiento burros (si BURROS), te obligan a usar UTF8.

Y decimos BURROS porque PHP con UTF8 NO FUNCIONA.

Aclaremos que la codificación LATIN1 usa un byte para cada carácter y UTF8 usa varios.

Aclaremos también que sabemos que muchas instrucciones PHP de un solo byte no funcionan en multibyte (UTF8), por lo que se deben usar instrucciones precedidas por "mb_".

Por ejemplo "strlen" en UTF8 se debe escribir como "mb_strlen" para que funcione, pero lo chocante es que NO FUNCIONA con UTF8 si no se pone "mb_strlen($cadena,'latin1').

Siempre que antes declares:

mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");

Parece fácil, aunque sea confuso, pero lo cierto es que no funciona en Español, porque al usar mb_substr en UTF8 vemos que con los ACENTOS no funciona y se come los caracteres acentuados. Prueba por ejemplo a tomar la palabra "PAÍS" carácter a carácter.

La solución en español pasa por hacerte tus propias funciones para UTF8, pero como es ridículo ni las ponemos.

Resulta ridículo usar un lenguaje para textos españoles que no funciona con ellos.

Nuestra conclusión es usar LATIN1 para el manejo de cadenas, convirtiendo los datos de entrada a LATIN1 y los datos de salida a UTF8, con eso nos aseguramos de que no habrá errores de proceso.

Los anuncios de Google pueden grabar cookies. Si sigue navegando por este sitio ACEPTA LAS COOKIES. Más información: Google