Esto es interesante y puede que los saque de unos cuantos dolores de cabeza a la hora de ir programando sus sistemas y aplicaciones con PHP, MySql y HTML, la combinacion que todos quieren, por lo barato, pero no leemos la letra chica (hay unos cuantos problemas que debemos lidiar).
Eso de los costos por herramientas libres ya creo que lo converso con mis amigos para no aburrirlos.
Aqui una serie de preguntas que debemos tener en cuenta, antes, durante o despues de tener la aplicacion programada.
- ¿Que codificación usan mis columnas(atributos, etc) de mis tablas en MySql?
- ¿Que codificación usaré en mi HTML?
- ¿Usaré una aplicacion extra para los reportes o documentos de salida?
Pero lo mas importante, le dijiste a tu BD que codificación debe tener?.
Estaba programando una aplicacion con todo lo que les menciono y Ajax, pero no consideré que mi BD no estaba codificada debidamente.
Mis columnas tienen la codificacion correcta, pero al momento de guardar en la BD valores BD se guardaban con simbolos raros. Ok, luego usé htmlentities, pero adivinen Oh, tengo editar estos valores (en un formulario html), al mostrarlos todo bien, pero si quiero buscar una palabra con "ñ" o con tildes que demonios hago?. Nada por que los tildes no se guardaron correctamente -.-
Al momento de guardar con phpmyadmin, magia guarda con tildes, pero DOOOOO, al pasarlo al formulario HMTL no se muestran los tildes, pero pensé hey htmlentities y DOOO nuevamente, al querer editar se guarda con simbolos, entonces pensé codificacion correcta aqui y alla, cual es el problema?, el idioma? >.<.
No, aquí esta:
Pues la mayoria de veces es porque la comunicación entre el servidor Mysql y el script PHP, todo y especificar que queremos en UTF8 en todas partes, sigue mandando la respuesta del SELECT en otro formato.
Como obligar al servidor Mysql ha devolver el resultado en formato UTF8?
Muy fácil, enviar este "consulta" al Mysql antes de cualquier SELECT:
CODE: SELECT ALL SET NAMES 'utf8'
Espero les pueda servir y tengan un poco de conciencia, no como yo que debí darme una tremenda paliza para fijarme en lo que tenia en frente =/.



0 comentarios:
Publicar un comentario