Los caracteres especiales se deforman en la inserción de la base de datos

Estoy usando UTF-8 en mi HTML y configuré la intercalación de la tabla de mi base de datos en UTF-8 Unicode. Los datos que estoy guardando provienen de una fuente externa, pero al verlos en el sitio web (en UTF-8) funcionan bien.

Ahora, cuando almaceno los valores de php usando una consulta de inserción, los valores como 'Bearwölf' se deforman a 'Bearwölf'.

¿Cómo soluciono esto? No creo que haya muchos más detalles que proporcionar, si se te ocurre algo, házmelo saber.

preguntado el 03 de mayo de 12 a las 15:05

¿Qué te hace pensar que se han "desformado"? ¿Cómo y dónde ves los datos dañados? -

Mirando la tabla en phpMyadmin... Esto me pareció bastante mal formado. Además, mi cronjob que verifica si existe este nombre y lo agrega si no existe, ya no lo ve. Leeré rápidamente los datos y veré cómo los ve mi sitio web. -

Es muy posible que la conexión entre PHPMyadmin y MySQL no esté usando UTF-8, o que la página de PHPMyadmin en la que está viendo los resultados no esté codificada en UTF-8... al igual que su cronjob. Asegúrate de SET NAMES 'utf8' después de abrir cada conexión si el cliente tiene la intención de enviar/espera recibir usando esa codificación (o si no cambia el valor predeterminado). -

Esto simplemente fue más allá de mi comprensión. Consulté la base de datos por los valores en la parte inferior de la página, sin ningún nombre establecido ni nada, e imprime los valores correctamente, como usted sugirió. Sin embargo, las consultas anteriores en la página no lo hacen. esta consulta: SELECT charname FROM member, más o menos igual que el que funciona, devuelve los nombres tan dañados como están en la base de datos cuando los veo. Esto hace que mi cronjob salga mal. Incluso poniendo mysql_query("SET NAMES 'utf8'"); arriba no funcionó.. -

1 Respuestas

Cambió la API para dar cadenas codificadas en utf 8, problema resuelto.

contestado el 06 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.