Foros del Web » Programando para Internet » PHP »

Codificación base de datos MySQL

Estas en el tema de Codificación base de datos MySQL en el foro de PHP en Foros del Web. Hola! Normalmente trabajo con un servidor local (XAMP) y ahí creo mis tablas en la base de datos. Pues bien, cuando las subo al servidor ...
  #1 (permalink)  
Antiguo 18/03/2014, 08:51
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Codificación base de datos MySQL

Hola!
Normalmente trabajo con un servidor local (XAMP) y ahí creo mis tablas en la base de datos. Pues bien, cuando las subo al servidor remoto, a pesar de que la codificación es la misma (UTF-8) resulta que no me saca bien los acentos en algunos de los campos y tengo que ir corrigiéndolos.
No sé cómo solucionarlo.
Un saludo!
  #2 (permalink)  
Antiguo 18/03/2014, 08:56
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 8 meses
Puntos: 67
Respuesta: Codificación base de datos MySQL

Creo que puedes cambiar el charset de la base de datos donde lo tienes subido.
  #3 (permalink)  
Antiguo 18/03/2014, 12:27
 
Fecha de Ingreso: noviembre-2012
Mensajes: 74
Antigüedad: 12 años
Puntos: 3
Respuesta: Codificación base de datos MySQL

¿Como lo subes a la base de datos remota?
Las bases de datos tienen un charset, revisa que sean UTF-8
Tambien las tablas tienen un charset (por default es la misma que de la base de datos), revisa que sean UTF-8

y cuando importas debes especificar que es UTF-8
y si es un CSV tienes que ver que la codificación del archivo se UTF-8
  #4 (permalink)  
Antiguo 18/03/2014, 16:23
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Codificación base de datos MySQL

La base de datos la subo importándola desde el MySQL del servidor remoto. Cuando la subo la importo con codificación UTF-8. Los campos tanto en la base de datos local como la remota tienen el mismo cotejamiento (utf8_unicode_ci). No tengo ni idea de porqué no me coge los acentos.
  #5 (permalink)  
Antiguo 19/03/2014, 08:54
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: Codificación base de datos MySQL

estimado usa esto en tus etiquetas html
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ahora si es la base de datos

abajo de tu conexion base datos pon esto en tu codigo php

Código PHP:
Ver original
  1. $conexion=mysqli_connect("localhost","root","tupass");
  2. mysqli_select_db($conexion, "tuBD");

exito :)
  #6 (permalink)  
Antiguo 20/03/2014, 16:23
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Codificación base de datos MySQL

En el código html ya tengo el charset=utf-8 puesto, lo que hice ahora fue poner en mi archivo de conexión también la especificación de ese juego de caracteres (mysql_set_charset('utf8');). Pero ni así me va. No me sigue reconociendo los acentos. No tengo ni idea de cómo solucionarlo ni dónde está el problema.
  #7 (permalink)  
Antiguo 20/03/2014, 17:44
 
Fecha de Ingreso: marzo-2013
Ubicación: Neuquén Capital
Mensajes: 111
Antigüedad: 11 años, 8 meses
Puntos: 8
Respuesta: Codificación base de datos MySQL

Cita:
Iniciado por Xaora Ver Mensaje
En el código html ya tengo el charset=utf-8 puesto, lo que hice ahora fue poner en mi archivo de conexión también la especificación de ese juego de caracteres (mysql_set_charset('utf8');). Pero ni así me va. No me sigue reconociendo los acentos. No tengo ni idea de cómo solucionarlo ni dónde está el problema.
Amigo, si la conexión es MYSQLI no puede ser MYSQL_SET_CHARSET.. te falta la I! :)

Suerte!
  #8 (permalink)  
Antiguo 20/03/2014, 19:07
 
Fecha de Ingreso: noviembre-2012
Mensajes: 74
Antigüedad: 12 años
Puntos: 3
Respuesta: Codificación base de datos MySQL

Podrias decir como generas el archivo que importas y como lo importas, es decir si desde un cliente mysql como Mysql workbench, desde phpMyadmin o por linea de comandos, y si el archivo es un script sql o un archivo csv, etc.

Creo que no te reconoce las codificacions porque los datos ya se importaron mal en la base de datos, si en la base de datos no puedes ver los acentos, entonces la importación es lo que esta mal.
  #9 (permalink)  
Antiguo 21/03/2014, 08:12
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Codificación base de datos MySQL

El archivo que importo lo exporto de MySQL del servidor local de mi ordenador. El formato en el que lo exporto y que lo importo posteriormente as MySQL del servidor remoto es .sql.
Lo que sí comprobé es que en el MySQL del servidor local si miro los campos de la tabla antes ya de exportarla, no me aparecen puestos los acentos. Sin embargo, en la web que tengo en local eses mismos campos aparecen perfectamente, con los acentos en su sitio.
  #10 (permalink)  
Antiguo 21/03/2014, 08:21
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: Codificación base de datos MySQL

Cita:
El archivo que importo lo exporto de MySQL del servidor local de mi ordenador. El formato en el que lo exporto y que lo importo posteriormente as MySQL del servidor remoto es .sql.
La pregunta subsiste: ¿Con qué lo exportas desde MySQL? ¿MySQL Workbench? ¿Linea de comandos en consola? ¿Usas mysqldump?? ¿Lo haces por medio de SELECT INTO OUTFILE? ¿usas phpMyadmin?
¿Cómo?
Ese detalle es crítico para entender en qué paso se pierden los caracteres.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 23/03/2014, 08:48
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Codificación base de datos MySQL

Exporto desde phpMyadmin e importo también desde phpMyadmin del servidor remoto.
  #12 (permalink)  
Antiguo 23/03/2014, 09:11
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: Codificación base de datos MySQL

¿Editas ese archivo exportado en algún momento?
Es decir, ¿lo abres con algo para luego guardarlo o qué?

Trata de ser más detallado y descriptivo en las explicaciones de lo que haces. Estamos haciendo un ida y vuelta muy largo porque respondes como si fuesen SMS, o te estuviesen vigilando.
La cosa es sencilla: El archivo generado debe ser UTF-8, y nunca ser alterado. MySQL Espera recibir UTF-8, por lo que si al migrar en la siguiente base está todo OK, el error lo tienes al leer los datos de esa segunda base. Y eso implica qu ene alguna etapa de las consultas no está correctamente configurada o la conexión, o las lecturas de lso 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)
  #13 (permalink)  
Antiguo 24/03/2014, 04:31
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Codificación base de datos MySQL

No edito el archivo en ningún momento ni lo abro con ningún programa. Solo genero el archivo en formato .sql en el phpMyadmin del servidor local y lo importo a continuación con el phpMyadmin del servidor remoto. Simplemente eso. No es que conteste como si fuera un SMS es que sencillamente no hago nada más que eso. Precisamente por eso no me cabe en la cabeza, porqué demonios no me sale con la codificación correcta.
  #14 (permalink)  
Antiguo 27/03/2014, 04:28
 
Fecha de Ingreso: marzo-2014
Mensajes: 20
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Codificación base de datos MySQL

A alguien se le ocurre donde puede estar el fallo.
Gracias!
  #15 (permalink)  
Antiguo 27/03/2014, 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: Codificación base de datos MySQL

Simplifiquemos:
1) Verifica la configuración de conexiones que usa tu servidor XAMPP en tu localhost.
2) Verifica la codificación con que quedó el archivo descargado (abrelo con algun editor y mira las propiedades).
3) Verifica la configuración de tu host remoto para conexiones entrantes.
4) Genera un backup desde le servidor remoto con una tabla que tenga datos bien almacenados, y verifica la codificacion del mismo.
5) Si hay discrepancias en las codificaciones de las conexiones o los archivos, o no puedes acceder a la configuracion de conexiones entrantes del host, pide ayuda al soporte técnico del host. Ellos son los que están obligados a aportarte soluciones para problemas puntuales de su servicio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 27/03/2014, 15:29
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 11 meses
Puntos: 8
Respuesta: Codificación base de datos MySQL

Hola,
Has probado con una consulta "SET NAMES UTf8" antes de la que te devuelve los registros mal codificados?

Etiquetas: mysql, tabla
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:06.