PDA

Ver la Versión Completa : Problema con acentos con PHP y MySQL


Vinicio
23-10-2006, 20:09:26
Hola amigos, tengo un problema a la hora de hacer el insert desde php a mi Base de datos en MySQL, el caso es que los acentos los pone mal, pone caracters extraños donde deberia ir la letra acentuada o la ñ, pero solo en la base de datos, php las despliega bien.....

Alguien tiene alguna idea o sabe como resolver este problema...

:confused:

dec
23-10-2006, 20:19:50
Hola,

Puede que el problema esté en la codificación conque se guardan los datos en las tablas. Yo aquí me pierdo un poco, pero, si la tabla es del tipo MyISAM y tienes un "cotejamiento" ("collate" en inglés) "utf8_spanish2_ci" no deberías tener problemas con acentos, eñes y demás.

Puedes tratar de "alterar" las tablas (haz una copia de seguridad antes por lo que pudiera pasar, ya te digo que yo en esto no soy muy ducho) o utilizar algún programa que te permita trastear con eso como pudiera ser PhpMyAdmin (http://www.phpmyadmin.net/).

Nota: ignoro si con otros cotejamientos lograrías también el objetivo; creo que así es, pero, me parece que el que te comento garantiza que no haya problemas con caracteres como los que mencionas y aun con otros de otros idiomas que pudieran causar problemas también.

Vinicio
23-10-2006, 22:32:31
Gracias amigo

Ya lo intente, cambio el cotejamiento por el k me dijiste, y ya pude cambiar el tipo de tabla por MyISAM y aun asi sigue poniendo mal los acentos y las Ñ, no se k pueda ser ya llevo tiempo tratando de resolver esto, cualkier ayuda sera bien recibida gracias de antemano a todos....

roman
24-10-2006, 00:44:50
No debería ser necesario cambiar a tablas MyIsam pero además del juego de caracteres que uses habría que saber como estás metiendo los datos. Digamos que si insertas los datos desde una página web pues dicha página creo que debe especificar correctamente el juego de caracteres.

// Saludos

dec
24-10-2006, 01:26:54
Hola,

No; no sé si dí a entender que era necesario que las tablas fueran del tipo "MyISAM", pero, no quise decir eso. Lo cierto es que nunca probé otro tipo de tablas así que no puedo hablar demasiado, pero, hasta donde llego, no se trata de eso.

Ahora bien. No se trata únicamente de cambiar el "collate" de las tablas; también la propia base de datos ha de establecerse con el "collate" adecuado, y, procurar que este mismo sea el utilizado en las páginas Web, que sea el que "sirva" el Servidor que usemos.

Es decir, se trata de tenerlo todo con el mismo "collate" o codificación de caracteres: archivos, conexiones, tablas, base de datos, etc. Al menos esto es lo que procuro yo y, aunque parezca "mucho" en realidad no es nada, teniendo en cuenta que no hace falta nada más, a lo menos que yo sepa: nunca probé con otros idiomas como el chino, por ejemplo, tal vez aquí no sea tan sencillo.

Pero, en lo que respecta al español y sus caracteres "especiales" ya digo... es lo que hago y de momento todo va estupendamente.

serpiente
15-04-2009, 10:06:45
Tengo una base de datos en mysql a la que me conectaba desde delphi como root, y todo iba bien, pero ahora he creado un usuario específico para conectarme a esa base de datos desde delphi y al conectarme me cambia las ñ y todos los caracteres espciales. Si cambio a root todo bien, pero si lo hago con el nuevo usuario que tiene privilegios totales para esa base de datos, pues me cambia.