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

el problemático utf8

Estas en el tema de el problemático utf8 en el foro de Mysql en Foros del Web. hola amigos, tengo la siguiente tabla en mi base de datos: Código PHP: create table informacion_personal  (    id_usuario  int ( 6 )    not null ,    nombre  varchar ( ...
  #1 (permalink)  
Antiguo 13/05/2011, 10:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 44
Antigüedad: 13 años, 7 meses
Puntos: 2
Pregunta el problemático utf8

hola amigos, tengo la siguiente tabla en mi base de datos:

Código PHP:
create table informacion_personal (
  
id_usuario  int(6)   not null,
  
nombre  varchar(30not null,
  
apellidos  varchar(50not null,
  
dia   int(2)   not null,
  
mes   int(2)   not null,
  
anho   int(4)   not null,
  
sexo   int(1)   not null,
  
estudios  int(1)  default null,
  
ingreso  int(1)   default null,
  
viaje   text   null,
  
primary key(id_usuariodiamesanhosexoestudiosingreso)
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci
en php envío el header indicando que será utf8, base de datos tiene el mismo charset y collate... si muestro el valor enviado en el formulario antes de ingresarlo en pantalla me lo mostrará correctamente, pero por ejemplo si en alguno de los campos varchar ingreso "alimaña" o "céntrico", mysql me va a guardar "alima" o "c", queda cortado... cómo lo puedo solucionar?

gracias!
PD: También he probado con set names 'utf8' y nada.

Última edición por diegoibanez; 13/05/2011 a las 11:05
  #2 (permalink)  
Antiguo 15/05/2011, 21:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 44
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: el problemático utf8

por favor, ayúdenme!
  #3 (permalink)  
Antiguo 16/05/2011, 05:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: el problemático utf8

Ese tema se resuelve en PHP, no en la base.
La tabla de la base puede estar perfectamente definida, pero en PHP la construcción de la scadenas a almacenar se resuelve en el script de PHP, y si eso ya llega mal de entrada, no lo puede corregir la base.
Es muy habitual que le digas al PHP que el header es UTF-8, pero cuando creas la cadena del INSERT también debes, al mismo tiempo, usar las funciones necesarias en PHP para que la cadena quede perfectamente escrita. Esto se suele hacer con utf_encode(), y en ocasiones hay que usar htmlentities().
Estos temas no son asunto de la base, sino de la programación de los scripts en tu web, por lo que te recomiendo consultar el asunto en el Foro de PHP, que es donde se tratan.
__________________
¿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 16/05/2011, 06:07
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: el problemático utf8

Pues precisamente yo me peleé muchísimo con este caso.

2 cosas importantes:

Toda la base de datos y tablas tienen que tener utf8 de collate y utf8-general-ci.
Los ficheros php que guardes, asegúrate de que los guardas en formato UTF8- SIN BOM

Esto del SIN-BOM es fundamental para que los caracteres que citas viajen correctamente.

prúebalo y nos dices.

Etiquetas: cortado, utf-8
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 11:23.