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

Utilizar mysql_query(SET NAMES 'utf-8')???

Estas en el tema de Utilizar mysql_query(SET NAMES 'utf-8')??? en el foro de Mysql en Foros del Web. Necesito que mi página web funcione con codificación utf-8. Para ello he realizado lo siguiente: 1.- Crear base de datos, tablas y campos con charset ...
  #1 (permalink)  
Antiguo 15/06/2010, 07:56
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Utilizar mysql_query(SET NAMES 'utf-8')???

Necesito que mi página web funcione con codificación utf-8. Para ello he realizado lo siguiente:

1.- Crear base de datos, tablas y campos con charset utf-8
2.- Archicos aplicación guardados con codificación utf-8 y he introducido la cabecera charset=utf-8
3.- En la DDBB he establecido las siguiente variables:

Código MySQL:
Ver original
  1. character_set_client    utf8
  2. character_set_connection    utf8
  3. character_set_database  utf8
  4. character_set_filesystem    binary
  5. character_set_results   utf8
  6. character_set_server    utf8
  7. character_set_system    utf8
  8. character_sets_dir  C:\xampp\mysql\share\charsets\

El problema es que al imprimir por pantalla texto de la DDBB se muestran erroneamente las eñes, acentos, etc... Aplicando la propiedad

Código PHP:
Ver original
  1. mysql_query("SET NAMES 'UTF-8'");

... los datos se muestran correctamente. Pero ahora pregunto ¿Si ya he establecido en la BBDD todos los characters_set porque lo tengo que volver a establecer?¿No deberia ser suficiente una vez establecidos en la DDBBy su fichero my.cnf?

Grácias
  #2 (permalink)  
Antiguo 16/06/2010, 19:04
 
Fecha de Ingreso: julio-2009
Mensajes: 53
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Utilizar mysql_query(SET NAMES 'utf-8')???

Hola, estoy en la misma que vos, nada mas que yo en vez de usar set names estaba con

utf8_decode cuando voy a guardar datos en la base de datos. y
utf8_encode cuando leo datos de la base de datos para mostrar en pantalla.

Saludos
Juan

Última edición por juan1963; 16/06/2010 a las 19:27
  #3 (permalink)  
Antiguo 17/06/2010, 01:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Utilizar mysql_query(SET NAMES 'utf-8')???

Yo ya lo tengo solucionado

Añade estas lineas al fichero de configuración de mysql my.cnf

Código MySQL:
Ver original
  1. character-set-server=utf8
  2. collation-server=utf8_general_ci
  3. default-character-set=utf8
  4. skip-character-set-client-handshake

Las dos primeras directivas son para que MYSQL cuando vaya a crear una base de datos por defecto tenga la codificación utf-8.

La dos últimas líneas son para que cuando se impriman los datos de la query lo realice bajo el formato utf-8 consiguiendo el mismo efecto que SET NAMES 'utf-8'. Por mucho que tengamos configurado los archivos de la web, la DDBB en utf-8 Mysql realiza las conexiones ( queries ) con el formato iso-5589-1, y es por eso que tenemos que aplicar las últimas dos lineas!!

Te dejo un link muy útil de MYSQL ( inglés ):

http://dev.mysql.com/doc/refman/5.0/...lications.html
  #4 (permalink)  
Antiguo 17/06/2010, 02:58
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Utilizar mysql_query(SET NAMES 'utf-8')???

Cita:
Iniciado por juan1963 Ver Mensaje
Hola, estoy en la misma que vos, nada mas que yo en vez de usar set names estaba con

utf8_decode cuando voy a guardar datos en la base de datos. y
utf8_encode cuando leo datos de la base de datos para mostrar en pantalla.
Perdona, en el post de antes te había dicho que no hacia falta utilizar la funciónes utf8_decode/encode, pero no es cierto. Sólo sería necesario utilizar la función utf_encode para introducir los datos en DDBB puesto que la info cuando cuando viaja entre páginas lo hace con formato latin1 ( iso-8955-1 ) y por tanto hay que codificarla. Pero aplicando las directivas en my.cnf sería suficiente para imprimir os datos correctamente sin necesidad de utilizar la función utf8_decode()

Un saludo

Etiquetas: utf, utilidades
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 14:15.