Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema acentos PHP y MYSQL

Estas en el tema de Problema acentos PHP y MYSQL en el foro de PHP en Foros del Web. Vereis tengo una tabla en mi BD que contiene ciertos campos que pueden tener acentos, ñ y diversos signos de puntuacion( "", ¿ ? . ...
  #1 (permalink)  
Antiguo 11/06/2013, 06:03
Avatar de VzK90  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Problema acentos PHP y MYSQL

Vereis tengo una tabla en mi BD que contiene ciertos campos que pueden tener acentos, ñ y diversos signos de puntuacion( "", ¿ ? . ¡! ...etc )

Tanto la tabla como los campos tienen un cotejamiento utf8_spanish_ci.

En el archivo PHP que se encarga de hacer la consulta a la BD, y en el archivo PHP que muestra esa respuesta tengo colcoado al comienzo del documento:

header('Content-Type: text/html; charset=iso-8859-1');

El problema esque al almacenar los datos con acentos en un array se me almacenan como null. Si utilizo echo para mostrar los datos que iba a almacenar en el array se muestran con fallos de acentos, signos y demas....

Si utilizo utf8_encode() con el echo si los muestra correctamente, pero sigue sin almacenarlos.

Ya no se por donde puede venir el error..... alguna idea ??

un saludo
  #2 (permalink)  
Antiguo 11/06/2013, 06:55
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Problema acentos PHP y MYSQL

en la página que muestra los datos si tienes algo así no tiene que darte problemas
Código HTML:
Ver original
  1.         <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  2.         <meta http-equiv="Content-Language" content="es"/>
  3.     </HEAD>

si en la base de datos tienes cotejamiento utf832_spanish_ci y en los campos utf8mb4_spanish2_ci tampoco tienes que tener problemas.

¿el array cómo lo estás creando, con las keys en alfabeto anglosajón o español?
  #3 (permalink)  
Antiguo 11/06/2013, 07:16
Avatar de VzK90  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema acentos PHP y MYSQL

Gracias por responder. Ahora cuando muestro por pantalla con el echo el resultado si que se muestra correctamente, pero cuando lo añado en el array, si contiene acentos se añade como null.

El array lo creo de la siguiente manera:

Código PHP:
$resultado[$i] = array("idproceso"=>$idProceso"proceso"=>$proceso"opcion1"=>$opcion1"opcion2"=>$opcion2"opcion3"=>$opcion3"opcion4"=>$opcion4"respuestacliente" =>$respuestacliente); 
las variables $idProceso, $proceso, $opcion1, $opcion2, $opcion3, $opcion4, $respuestacliente contienen las respuestas de la consulta con los acentos.
La variable $i se va incrementando en 1 hasta que no queden mas registros por procesar.
  #4 (permalink)  
Antiguo 11/06/2013, 08:24
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Problema acentos PHP y MYSQL

Todo, todo y todo debe estar en utf8 para que no tengas problemas
Lee esto a ver si puede ayudarte, de todos modos, busca por google, ya te digo, debe estar todo con utf8, no solo el documento html, tambien la base de datos, las tablas, campos, formularios, conexion, etc...

http://shebang.ws/full-unicode-utf8-php-mysql.html
  #5 (permalink)  
Antiguo 11/06/2013, 09:14
Avatar de VzK90  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema acentos PHP y MYSQL

En el lado de la BD tengo, la propia base de datos, las tablas y los campos en utf8_spanish_ci.

La conexión a la base de datos tambien esta utf8 de esta manera:

mysql_set_charset('utf8', $conexion);

en los archivos php estan especificados los charset a utf8 tambien.

Ahora en el array no se añade como null, sino que se añade con errores tipograficos. Por ejemplo el siguiente texto mostrado con un echo se ve asi:

Cita:
¿Qué pregunta podría inventarme, si resulta que el problema esta en los acentos?
Sin embargo cuando lo añade al array lo hace asi:

Cita:
\u00bfQu\u00e9 pregunta podr\u00eda inventarme, si resulta que el problema esta en los acentos?
Nunca jamas habia tenido tantos problemas con los juegos de caracteres -.-

un saludo
  #6 (permalink)  
Antiguo 11/06/2013, 20:49
 
Fecha de Ingreso: enero-2013
Mensajes: 62
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Problema acentos PHP y MYSQL

Prueba con esto

utf8_decode("Solución útil y apañada a UTF-8");
o
utf8_encode("Solución útil y apañada a UTF-8");

más info en
http://www.desarrolloweb.com/articul...8-con-php.html
  #7 (permalink)  
Antiguo 12/06/2013, 06:14
Avatar de VzK90  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema acentos PHP y MYSQL

Hola,

Vereis, resulta que el problema lo resolvi con la respuesta que me dio DooBie al dejarme el enlace de: http://shebang.ws/full-unicode-utf8-php-mysql.html.

Simplemente con esto: mysql_set_charset('utf8', $conexion); ya solocione el problema, pero yo no lo sabia porque el resultado que esta mostrando lo estaba codificando en JSON para que lo leyera mi aplicacion.

De esta manera visualizandolo desde el navegador obtenia esos resultados extraños, pero realmente esos resultados son el propio codigo UTF8, por lo que al testearlo con mi aplicación lo interpretaba correctamente.

un fallo tonto por desconocer que JSON no interpreta UTF8 sino que lo muestra tal cual

un saludo

Etiquetas: acentos, html, 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 06:22.