我有一个PHP对象,我将其序列化并存储在mySQL longText字段中。 mySQL数据库以UTF-8编码,这个longText字段也是如此。当我使用mySQL客户端复制longText字段的内容,并将它们粘贴到文本编辑器中时,我发现控制字符已插入属于该对象的属性名称中。这是一个屏幕截图,控制字符显示为红色:
php serialize这是正常的吗?
答案 0 :(得分:2)
假设你的例子中的¿
代表一个空字节,那么根据手册,这是正常的:
注意:对象的私有成员具有该成员前面的类名 名称;受保护的成员在成员名称前面加上'*'。这些 前置值在任一侧都有空字节。 〜PHP Manual: Serialize
...当您移动序列化对象时需要注意的事项。丢失那些空字节会使您的对象不可序列化(或者您可能会得到奇怪的全公共属性)。