Foros del Web » Programando para Internet » PHP »

Codificación UTF8 del valor de una variable

Estas en el tema de Codificación UTF8 del valor de una variable en el foro de PHP en Foros del Web. Hola Tengo un problema Resulta que capturo el valor de una variable y con una sentencia INSERT TO la paso a su campo correspondiente. Hasta ...
  #1 (permalink)  
Antiguo 08/06/2011, 11:20
 
Fecha de Ingreso: octubre-2005
Ubicación: Banyoles
Mensajes: 22
Antigüedad: 19 años, 1 mes
Puntos: 0
Codificación UTF8 del valor de una variable

Hola

Tengo un problema

Resulta que capturo el valor de una variable y con una sentencia INSERT TO la paso a su campo correspondiente. Hasta aqui todo ok. El problema viene cuando esa variable contiene caracteres no admitidos para un idioma en cuestión.
Por ejemplo: 'Baño'
Tengo el valor de la variable, pero luego en la base de datos me guarda sólo 'Ba'. Al llegar al carácter extraño que no reconoce, ahí se queda.
Como puedo hacer para pasar la variable a UTF8 para castellano, o desde la misma consulta SQL INSERT si se puede, para guardarlo correctamente...?

Gracias de antemano,

Saludos
  #2 (permalink)  
Antiguo 08/06/2011, 11:27
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: Codificación UTF8 del valor de una variable

mysql_query("SET NAMES 'UTF-8' ")
ademas de revisar la codificacion de tus tablas
  #3 (permalink)  
Antiguo 08/06/2011, 11:47
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Codificación UTF8 del valor de una variable

puedes antes de enviar tu cadena codificarla a utf8
utf8_encode( 'baño' );

pero creo que seria mejor que tu tabla la guardaras con esta codificación

ALTER TABLE tabla CHARACTER SET utf8;
  #4 (permalink)  
Antiguo 08/06/2011, 13:46
 
Fecha de Ingreso: octubre-2005
Ubicación: Banyoles
Mensajes: 22
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Codificación UTF8 del valor de una variable

Hola
La base de datos está codificada, concretamente utf8_general_ci por lo que no acabo de entender porqué no admite caracteres como ñ ó los acentos...
Debe de estar en utf8_spanish_ci o utf8_spanish2_ci acaso??

Gracias
  #5 (permalink)  
Antiguo 08/06/2011, 13:47
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: Codificación UTF8 del valor de una variable

hiciste esto antes de guardarlos

mysql_query("SET NAMES 'UTF-8' ") ?????
  #6 (permalink)  
Antiguo 08/06/2011, 14:23
 
Fecha de Ingreso: octubre-2005
Ubicación: Banyoles
Mensajes: 22
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Codificación UTF8 del valor de una variable

Encontré la solucion
En el fichero donde tengo los parámetros de conexion, añadí

@mysql_query("SET NAMES 'UTF8'");
@mysql_query('SET CHARACTER_SET utf8');

La primera linea ya existía, añadí la segunda, i voilà, funciona...

Para si alguien lo necesita, pues aquí está

Gracias a todos por vuestra ayuda

Saludos
  #7 (permalink)  
Antiguo 08/06/2011, 14:28
 
Fecha de Ingreso: octubre-2005
Ubicación: Banyoles
Mensajes: 22
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Codificación UTF8 del valor de una variable

Tengo otro problema, que no sé como solucionar.
A este registro 'Baño' necesito asociarle una imagen i mostrarlo en la web, pero no sé como empezar con ello.
Necesito que si un usuario escoge 'Baño', este quede grabado en la bd y le asocie automáticamente la imagen 'baño_img.jpg' previamente cargada en la bd...
Me funciona y capturo los datos, pero no sé como hacer para vincular la imagen y tampoco qué tipo de campo crear en la bd para la imagen...
Tengo entendido que es mejor que la imagen esté en una carpeta del servidor para no saturar la bd, pero no tengo idea como hacerlo con php...
Alguien lo ha hecho?

Gracias de nuevo
  #8 (permalink)  
Antiguo 08/06/2011, 14:29
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: Codificación UTF8 del valor de una variable

pasa por la seccion de aportes, hay varios ejemplos de eso
  #9 (permalink)  
Antiguo 08/06/2011, 15:31
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 17 años
Puntos: 75
Respuesta: Codificación UTF8 del valor de una variable

si la imágen tiene un ID, entonces donde se guarda el dato baño le agregar un campo más que sea ID_imagen y de esta forma los relacionas
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #10 (permalink)  
Antiguo 08/06/2011, 17:20
Avatar de FerraN10  
Fecha de Ingreso: junio-2011
Ubicación: Sant Joan Despí
Mensajes: 79
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Codificación UTF8 del valor de una variable

Cita:
Iniciado por jacovi Ver Mensaje
Hola

Tengo un problema

Resulta que capturo el valor de una variable y con una sentencia INSERT TO la paso a su campo correspondiente. Hasta aqui todo ok. El problema viene cuando esa variable contiene caracteres no admitidos para un idioma en cuestión.
Por ejemplo: 'Baño'
Tengo el valor de la variable, pero luego en la base de datos me guarda sólo 'Ba'. Al llegar al carácter extraño que no reconoce, ahí se queda.
Como puedo hacer para pasar la variable a UTF8 para castellano, o desde la misma consulta SQL INSERT si se puede, para guardarlo correctamente...?

Gracias de antemano,

Saludos
Mira te comento yo he tenido algo parecido hace tiempo.
El tipo de codificacion de la pagina web que estes utilitzando puede ser que no sea la correcta.

ejemplo "casa.php"

Te comento lo que hize para no tener mas problemas de esto.

-Utilize Notepadd ++ (Me baje la ultima version(creo recordar 5...)).

Creo que era en la parte del menu --> encoding --> convert a UTF8 , ya que si hacia encode a UTF8, seguia teniendo el lenguaje por defecto que tubiera la web.

Mira que tu lenguaje de la pagina web no te lo coja por defecto diferente de UTF8 y te ira todo perfecto y te ahorras lios.

*Por otro lado lo con el tema de la imagen yo no la guardaria en la base de datos binaria, ya que hoy en dia la lectura de imagenes de disco duro es rapida.
-Utilitzaria en la base de datos un campo llamado img por ejemplo y en este guardaria la ruta de la imagen donde se guardaria.
-Para eso utilizaria la funciona move_uploaded_file


Una humilde opinion.

Informate i dime como te ha ido...

Saludos y suerte
__________________
El fin de mi tarea no fue el fin sino el trayecto
Si vivir es la odisea el horizonte que clarea
En esta aldea parece perfecto así que bienvenido lo que sea

Última edición por FerraN10; 08/06/2011 a las 17:26 Razón: contesto segunda preguntar del creador del post
  #11 (permalink)  
Antiguo 09/06/2011, 07:59
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 17 años
Puntos: 75
Respuesta: Codificación UTF8 del valor de una variable

Cómo dijo FerraN10, es mejor guardar en la BD la ruta de la imágen, de esta forma es mejor, sólo tienes que tener las imágenes en una carpeta en el servidor y listo
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175

Etiquetas: variables, 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 12:10.