私はシリアル化してMySqlデータベースに保存する大きなPHPオブジェクトを持っています。テーブルのエンコーディングはUTF-8
であり、シリアル化されたオブジェクトのエンコーディングを保持するカラムはUTF-8
です。シリアル化されたオブジェクトをMySqlデータベースに保存する
問題は、オブジェクトがフランス語文字を含むテキスト文字列を保持していることです。例えば
:私は、オブジェクトをシリアル化するとき
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
は、文字列を維持し、正しいフォーマットになっている直接再度アンシリアライズ。私は、MySQLデータベースにシリアライズされたオブジェクトを保存するとき
しかし、その後、再びそれを取得した文字列は次のようになり、それをアンシリアライズ:私は、データベース内のオブジェクトを格納するとき
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
何かがうまくいきません。
注
- オブジェクトはORMを推進使用して格納されます。
- 列タイプは
text
です。 - 文字列はHTMLファイルに格納され、読み込まれます。
ファイルのエンコーディングとは何ですか? – alexn
base_64でエンコードしようとすることはできますが、そうする必要はありません。データベース列はどのような型ですか? PHPでデータベース接続の設定を確認しましたか? –
@ TheSilencerデータベースの列の種類はテキストです。データベース接続はPROPELを使用して行われます。 – Songo