Php 取消序列化问题:3字节’;转换为1字节'';

Php 取消序列化问题:3字节’;转换为1字节'';,php,serialization,Php,Serialization,在我的数据库中,我有一个包含以下数据的序列化字符串:Boy's,字符“是一个3字节的字符,导致序列化字符串看起来像:s:7:“Boy's”,但是,当我在PHP中得到它时,它显示的是Boy?s,它只有5个字符长,这使得序列化字符串出错 在输出上,有没有一种方法可以转换输出?到字符串中的“a”来解决非序列化问题 数据库中的数据格式为utf8mb4_unicode_ci,无法更改 我试过了,发现问题出在,utf8_解码或utf8_编码的某个地方,但我似乎无法让它工作 我希望你们中的一些人能回答我的问题

在我的数据库中,我有一个包含以下数据的序列化字符串:
Boy's
,字符“是一个3字节的字符,导致序列化字符串看起来像:
s:7:“Boy's”
,但是,当我在PHP中得到它时,它显示的是
Boy?s
,它只有5个字符长,这使得序列化字符串出错

在输出上,有没有一种方法可以转换输出?到字符串中的“a”来解决非序列化问题

数据库中的数据格式为utf8mb4_unicode_ci,无法更改

我试过了,发现问题出在,utf8_解码或utf8_编码的某个地方,但我似乎无法让它工作


我希望你们中的一些人能回答我的问题

这是一个问题吗?当使用多字节字符时,有几件事需要检查,以确保您实际设置了正确的字符集。我之前写过一篇包含一个小清单的文章,它将涵盖PHP/MySQL应用程序中的大部分字符集问题。还有一个更深入的话题。最有可能的是,您会在其中一个或两个主题中找到解决方案。@RiggsFolly我非常确定它始终是正确的UTF-8,因为它正确地显示在数据库和网站上的其他位置;如果Qirel正确存储在数据库中,它可能是HTML/PHP头、连接对象(如果存储正确,则不太可能)或文件编码。这是值得检查的每一种可能性-并设置所有的UTF8,即使它似乎是正确的。然后你确定你没有在任何地方混合任何字符集。你的脚本文件编码为utf-8吗?