Problema con Acentos en MySQL + PHP

Iniciado por Skeletron, 11 Marzo 2010, 06:01 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

#10
Cita de: ^TiFa^ en 11 Marzo 2010, 13:29 PM
Tiene una gran probabilidad de que sea asi  :rolleyes:

Que CHARSET tiene esa tabla donde buscas esa info????  Por lo general lo dejan en utf8

Haz un SHOW CREATE TABLE nombre_tabla;

Que charset tiene????

Puedes cambiarselo por latin1 por ejemplo:

ALTER TABLE nombre_tabla CHARSET = latin1;

Latin1 acepta acentos y demas?
Es muy extraño el problema. Me esta trabando todo el proyecto. Y no quiero solucionarlo eliminando los acentos..


Aca les muestro imganes:
Cotejamiento de tablas:


Cotejamiento general de MySQL:

Skeletron

Noticia de Ultimo momento:
(perdon por el cuadruple posteo)

Miren ésto:
La palabra Córdoba en PHP aparece perfectamente, pero dentro de la tabla veo que no existe... Solamente el Cordoba sin acento de Venezuela...

Entonces miro las regiones de Argentina, y vean:


Como puedo hacer para que esos datos aprezcan como deban??
deberia ejecutar una sentencia que convierta los caracteres de esa forma a normales.. Cual es?

Nakp

la palabra esta coon html entities

Córdoba != Córdoba... como la tenes en la bd, vas a tener que arreglar esa tabla a mano o con algun script que pase de htmlentities a caracteres normales
Ojo por ojo, y el mundo acabará ciego.

Skeletron

#13
Que hermoso quilombo entonces.
No hay algun funcion MySQL?

Tendre que buscar la htmlentities inversa entonces


Leí por ahí que es esta:
html_entity_decode()

Skeletron

#14
Perfecto.
Acabo de modificar todo.. Esta todo listo :)

Ahora, me pregunto:
Porque aparecen los caracteres en PHP con ese triangulito negro con el ? adentro?

Me esta volviendo loco el tema de que los textos anden mal y los textos traidos de la database anden bien!!...


Con que me quedo???? Pongo el HEADER y el META a iso-8859-1??? o a UTF-8?
Luego se supone que tengo que hacer un script que transforme cada entrada de la base de datos a iso-8859-1 o UTF-8 y lo "UPDATEE" en la base de datos?
La base de datos, con LATIN1 o con UTF?

Skeletron

Bien.. Les comento:

Ahroa con el HEADER en CHARSE=UTF-8
Los textos devueltos de la base de datos, aparecen como: C�rdoba

Y los textos escritos manualmente en PHP, aparecen bien..

SI cambio el HEADER CHARSET=iso-8859-1
Los textos devueltos de la abse de datos aparecen PERFECTOS
Y los textos que escribo manualmente en PHP aparecen así: elige tu puntuación y verás la proxima

Alguna recomendacion :)

Nakp

cuando los escribiste usabas utf y la tabla en lati1, ahora que usas el header para iso occidental muestras caracteres utf8, o conviertes todos los datos a un solo charset o usa htmlentities antes de mostrarlos (y solo para mostrarlos)

me inclinaria por hacer ambas cosas, arreglar los datos para que los datos utf8 guardadas en una tabla latin1 coincidan

http://www.programacionweb.net/articulos/articulo/?num=494
Ojo por ojo, y el mundo acabará ciego.

Skeletron

En realidad, a la tabla la descargue desde un sitio de internet... Posee """todos""" los paises, regiones y ciudades del mundo.. (obviamente no todos)...

Colocar un HTMLENTITIES me sigue dando problemas, porque la comparacion del IF, seguirá siendo falsa..

NECESITO que todo esté escribo BIEN...
O sea.. que en la base de datos esté bien escrito, y que se interprete bien en el codigo PHP para que al hacer las comparaciones del IF, dé TRUE cuando debe darlo.


Que dices que haga? Que tengo que cambiar en la base de datos para que funcione bien?
La idea es no tener que traspasar el texto que llega de la base de datos a otro charset en PHP, para no ocupar tiempo de calculo en bano, pudiendo corregir los datos de la database.

Nakp

Ojo por ojo, y el mundo acabará ciego.

Skeletron

Tengo el HEader en UTF-8, y la tabla en latin1.

Traspaso la tabla de latin1 a UTF? cual de todos los UTF-8 que hay en mysql? UTF-8_unicode_ci ??? (es el que aparece como predeterminado)