Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema charset

Estas en el tema de Problema charset en el foro de Mysql en Foros del Web. Hola! Estoy teniendo problemas con el charset de la BBDD, os cuento mi situación. - BBDD mysql: en el general del my.ini, es decir, no ...
  #1 (permalink)  
Antiguo 05/04/2010, 03:31
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema charset

Hola!

Estoy teniendo problemas con el charset de la BBDD, os cuento mi situación.

- BBDD mysql: en el general del my.ini, es decir, no está bajo la etiqueta de [mysqld] ni ninguna. No tengo ninguna referencia más al character set en todo el fichero de configuración.
default_character_set = latin1
default_collation=latin1_spanish_ci

- PHP: todos los formularios incluyen la cabecera:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

- Apache: en el httpd.conf
AddDefaultCharset ISO-8859-1

El problema es que, por ejemplo, para la palabra AÑADIR en BBDD tengo guardado Añadir, pero en la web lo veo con simbolos raros. En cambio, si lo escribo directamente en el PHP sin sacarlo de la consulta de BBDD lo veo correcto, así que no sé donde está el problema.

Si podéis echarme una mano por favor os lo agradecería mucho, porque a pesar de haber leido innumerables foros sobre el asunto, no termino de dar con mi problema.

Muchas gracias.
  #2 (permalink)  
Antiguo 05/04/2010, 03:42
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema charset

He observado otra cosa:

si el insert del texto "añadir" lo hago desde la consola de windows (un cmd) en BBDD lo inserta con caracteres raros para la "ñ" pero lo veo correctamente en el navegador...
  #3 (permalink)  
Antiguo 05/04/2010, 05:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema charset

Lo primero que debes hacer en estos casos (caracteres o valores indebidos en una tabla) es verificar el contenido de la tabla por fuera de cualquier lenguaje como es tu caso (PHP). Esto evitará interpretaciones o conversiones adicionales a los valores de la tabla, y permitirá saber si el problema se origina al guardar los datos o es cuando se recuperan datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 05/04/2010, 05:34
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema charset

Dentro de la tabla, se me dan dos casos:

- Si lo inserto desde la consola de mysql, se inserta la "ñ" correctamente pero en el navegador lo visualizo con caracteres incorrectos

- si lo inserto desde un cmd de windows sobre la base de datos la "ñ" se mete con caracteres extraños, pero se visualiza correctamente en el navegador
  #5 (permalink)  
Antiguo 05/04/2010, 06:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema charset

Entonces el problema es de PHP.
Verifica que las codificación de los scripts y la página sean UTF8 y también el de las tablas.
Luego consulta en el foro de PHP, porque el problema está en el envío de los datos y no en la base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 05/04/2010, 08:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Problema charset

Mira aquí, y donde yo pongo utf8, pon ISO-8559-1. Imagino que la base presenta codificación latin1, y las tablas y campos también.
http://www.forosdelweb.com/f86/cotej...spanol-629105/
En el caso del documento php y html que usas para escribir el texto, es decir, donde tienes los formularios, si trabajas con windows, deberán tener la codificación ANSI.

Saludos
  #7 (permalink)  
Antiguo 06/04/2010, 00:54
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema charset

Hola Jurena,

Perdona que te moleste, pero he intentado seguir las indicaciones del post que me has dicho y me ocurre lo siguiente:

Trabajo con el wamp.

- En el navegador veo correctamente las ñ´s
- si genero a través del navegador un export de los datos en XML (por ejemplo) también veo las ñ´s
- si abro una consola mysql (la del wamp) y hago un select sobre la tabla que contiene las ñ´s, está guardado con caracteres extraños y la codificación de la base de datos es latin1 y latin1_spanish_ci.

¿puede ser que en la base de datos realmente esté bien guardado y en la consola de mysql del wamp, se vea mal, es decir, que el problema sea de esa consola? Me da por pensar esto, dado que lo veo correctamente en otros lugares...También he probado a hacer la consulta desde la consola de windows y redireccionándolo a fichero y también visualizo correctamente las ñ´s. Aunque en el my.ini lo tengo bien configurado, creo :S. He visto con respecto a esto, que todas las opciones de configuracion del charset y collation las tengo para [wampmysqld] y no para el resto...¿debería ponerlo en todas?

Muchas gracias por tu ayuda.

Un saludo.
  #8 (permalink)  
Antiguo 06/04/2010, 01:11
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema charset

Te aporto más información...

Al generar el dump de la base de datos desde la consola de windows me pone esto:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Table structure for table `XXX`
--

DROP TABLE IF EXISTS `XXX`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `XXX` ....

Tengo algo mal configurado en la BBDD verdad?? pero no sé el qué...el caso es que utilizando la herramienta mysqlAdministrator al revisar la pestaña STARTUP VARIABLES, el default charset es latin1 y el default_collation latin1_spanish_ci.

Muchas gracias.
  #9 (permalink)  
Antiguo 06/04/2010, 05:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema charset

La consola de Wamp no es una consola de MySQL, sino una interfase PHP, por lo que lo que puede estar sucediendo es que los caracteres se hayan convertido en un formato que tu script de PHP interpreta bien, pero no es lo que debería haberse guardado.
Es un caso similar a guardar en un VARCHAR un objeto binario. No lo rechazará, pero si lo lees no lo entenderás sin la interfase correcta.

Mi sugerencia es que postees tu pregunta en el Foro de PHP, porque allí están los mejores expertos en ese tema (PHP) y posiblemente ya te habrían dado la solución si los hubieses consultado desde el principio.
Insisto en un tema: Si los datos están guardados así, es porque así los recibió la base, luego, el problema no está en la base sino en la forma que PHP está interpretando lo que envía y recibe.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: charset
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:28.