php - 逆シリアル化エラー、バックグラウンド データが疑わしく文字化けしていますか?
phpcn_u1582
phpcn_u1582 2017-05-16 13:08:00
0
4
853

serialize() を使用してデータをシリアル化し、データベースに挿入します。その後、unserialize() を使用して逆シリアル化すると、データ文字列エラーが発生します。
エラーの内容は次のとおりです:unserialize() [ function.unserialize ]: 2544 バイトのオフセット 0 でエラーが発生しました

Google で多くの解決策を検索しましたが、問題はエンコードの問題が原因であるとすべて言われていました。
そこで、挿入した場所は、base64_encode(serialize($str)); に変更されました。

unserialize(preg_replace('!s:(d+):"(.*?)";!se', '"s:".strlen("$2").": に変更されたことを読んでください。 "$2";"', $string))

試してみましたが、完全には解決しませんでした。その後、いくつかのデータグラムで同じエラーが発生しました。挿入されたコンテンツが以下のような文字化けしたコードになっていることがわかりました。 >

< /p>

理由を詳しく教えてください。できれば詳しく教えてください。

phpcn_u1582
phpcn_u1582

全員に返信(4)
PHPzhong

ソースデータを投稿してください。そうでない場合、どうやってテストできますか? 。

いいねを押す +0
洪涛

シリアル化されたデータに問題がないか確認してください。以前はserializeを使用していましたが、いつも問題が発生したため、json_decode

に変更するしかありませんでした。
いいねを押す +0
曾经蜡笔没有小新

base64_encode("a:1") == "YTox"

そのデータはbase64でエンコードされており、文字化けしていません。

いいねを押す +0
刘奇

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート