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.
Sent: Sunday, September 13, 2009 1:13 PM
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@centos.org
http://lists.centos.org/mailman/listinfo/centos-es