[CentOS-es] PROBLEMAS CON CARCATERES

Gonzalo Cáceres gonzalocaceres70 en hotmail.com
Dom Sep 13 14:47:38 UTC 2009


Bueno.... después de toda una noche desvelada... sin encontrar la solución... dormir un par de horas.... preguntar a la lista.... resulta que me surgió un destello de una idea y lo solucioné...

Aquí va lo que creo que me pasaba, lo que hice y cómo lo solucioné... espero que a otros que se vean en el mismo caso les sirva de ayuda...

Como ya expliqué, lo tenía todo en UTF-8... después de escribir el post anterior... volví a revisar todo paso a paso y confirmé que efectivamente todo está en UTF-8, y por ahí venía el problema....

Decidí aplicar en el código PHP la función utf8_encode() de la manera siguiente;

$lavariablequesea = utf8_encode($lavariablequesea);

Después de hacer esto, probé a insertar un nuevo registro en MySql desde la página web PHP... y resultó que lejos de corregirse el problema, se agravó, ya que ahora en vez de 2 caracteres extraños, había 4 caracteres...

Entonces pensé que lo que estaba ocurriendo, es que MySql estaba codificando todo lo que le llegara a UTF-8, pero cuando lo que le llega ya está en UTF-8, lo vuelve a codificar y es ahí donde se producen caracteres extraños...

al codificar d enuevo UTF-8 sobre datos ya codificados UTF-8.

Por lógica, pensé... debo retroceder un paso en la codificación... es decir... lo voy a enviar los datos a MySql en codificación ISO-8859-1... y si es como pienso, MySql lo codificará a UTF-8....

y gualaaa!!!! funcionó...

Metí en el código PHP, justo antes de la instrucciones query e INSERT para la base de datos, una línea que me descodificara la variable, de UTF-8 y me la dejara en ISO-8859-1... es decir... lo contrario a lo que hice antes...

$lavariablequesea = utf8_decode($lavariablequesea);


Eso fue todo...ahora me toca modificar el código PHP y meter esas decodificaciones para todas las variables.

Saludos.






From: Gonzalo Cáceres 
Sent: Sunday, September 13, 2009 1:13 PM
To: centos-es en centos.org 
Subject: [CentOS-es] PROBLEMAS CON CARCATERES


Hola amigos...

Tengo un problemas cuando inserto datos en MySql desde un formulario de Html y PHP.

El problema lo tengo las eÑes y eñes (Ñ,ñ)... y supongo que también me pasará lo mismo con los acentos.

Esta es la configuración que tengo a ver si alguien me puede dar una pista, porque no doy con el problema... que en principio creo que debe estar en la codificación de algo, pero no doy pie con bola.

La configuración se reparte en dos equipo:

Equipo A:
Servidor de MySql al que se accede en red local.

Sistema Operativo: Linux
Version MySql:  5.0.67
Codificación por defecto de MySql y de las bases de datos creadas incluso todos los campos: UTF-8
Servidor Web para el phpmyadmin: Apache 2.2.6
Versión de PHP: 5                        
Versión phmypadmin: 3.2.0-beta1

Las codificaciones por defecto para Apache y PHP no las he mirado porque pienso que no influyen, ya que las inserciones desde PHP y Apache se realizan desde el otro equipo.
Observación: Cuando inserto datos en la base de datos manualmente desde el phpmyadmin, las Ñ se graba sin ningún problema.

Equipo B:
Servidor Apache desde el que se accede al otro equipo y su servidor MySql.

Sistema Operativo: W XP
Versión PHP: 5.1
Servidor Web: Apache 2.2.13

Codificación por defecto en PHP: UTF-8
Codificación del documento Html-PHP donde se ejecuta el formulario y se manejan las variables de datos PHP que son enviadas al MySql: Charset:utf-8
Codificación del documento (página web) PHP en el editor: UTF-8
Codificación del documento (página web) PHP en los navegadores Firefox y Explorer: UTF-8

Es decir, todo está en UTF-8. El motor PHP y el Apache del equipo A no lo he mirado, como dije antes, pero entiendo que no tienen nada que ver.
He probado a combinar poniendo el motor PHP en ISO-8859-1 dejando la MySql en utf-8, ya que en algún post por internet decía algo de eso.
He probado a poner en el código PHP, un línea que le diga al PHP que se codifique los datos de texto en utf-8.

Pero nada de nada.... siempre las Ñ llegan mal a la base de datos, con los caracteres extraños que ya sabéis.... Àä+ y esas cosas...

Alguna idea clarificadora please???

Gracias.


--------------------------------------------------------------------------------


_______________________________________________
CentOS-es mailing list
CentOS-es en centos.org
http://lists.centos.org/mailman/listinfo/centos-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.centos.org/pipermail/centos-es/attachments/20090913/300473f7/attachment-0001.html 


Más información sobre la lista de distribución CentOS-es