MySQL - problema de encoding dependiendo de la entrada...

 
Vista:

problema de encoding dependiendo de la entrada...

Publicado por ruben (1 intervención) el 03/04/2008 12:43:13
Hola a todos

Este es un post mas bien para tratar de entender el porque del problema.

El problema es bastante tipico, caracteres extraños aparecen al introducir datos en la tabla. Al principio los datos estaban en latin1_sweedish_ci, esto es el collation de la tabal, asi que el charset vendria a ser latin1 si no me equivoco...

habia problemas con las e acentuadas y demas, asi que probe a cambiar, de primeras el charset de la tabla a utf8 , introduje un par de valores y parecia ir bien.

aun asi hize un SHOW VARIABLES y vi

character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_unicode_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci

de aqui presupongo importante el set_server y set_database...que estan los dos en latin1, pero com de momento al cambiarlo en la tabla me iba bien no quise hacerle mucho caso.

el caso es que mientras la bd reciba una entrada directa, a traves de la interfaz mysql de phpmyadmin o similares no tiene problema y almacena los caracteres correctamente...

Pero yo importo los datos de ficheros xml, geoRss mediante un script php... y aqui es donde aparecen otra vez los caracteres raros...

Me gustaria comprender porque ocurre esto, si alguien sabe la diferencia entre el charset de la tabla y el charset de la base de datos... en que se diferencian y si pueden ocasionar conflictos entre ellos...

voy a probar cambiando el charset de la base de datos, pero aunque se arreglara me gustaria saber el porque y no encuentro demasiada informacion al respecto...

Un saludo y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder