Tengo un gran objeto php que quiero serializar y almacenar en una base de datos MySql. La codificación de la tabla es UTF-8
y la columna para contener la codificación del objeto serializado también es UTF-8
.Almacenar un objeto serializado en la base de datos MySql
El problema es que el objeto contiene una cadena de texto que contiene caracteres franceses.
Por ejemplo:
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
Cuando serializar el objeto a continuación unserialize de nuevo directamente la cadena se mantiene y está en formato correcto.
Sin embargo, cuando guardo el objeto serializado en una base de datos MySQL y luego recuperarlo de nuevo a continuación unserialize que la cadena se convierte de esta manera:
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
Algo va mal cuando se almaceno el objeto en la base de datos.
Notas:
- El objeto se almacena utilizando propulsar ORM.
- El tipo de columna es
text
. - La cadena se almacena y se lee desde un archivo html.
¿Cuál es la codificación de su archivo? – alexn
Puedes intentar codificarlo en base_64, pero no deberías tener que hacer eso. ¿Qué tipo es la columna de la base de datos? ¿Ha comprobado la configuración de conexión de la base de datos en php? –
@TheSilencer el tipo de columna de base de datos es texto. La conexión a la base de datos se realiza utilizando PROPEL. – Songo