PHP序列化将控制字符添加到对象属性名称?

时间:2016-12-28 18:48:47

标签: php serialization utf-8

我有一个PHP对象,我将其序列化并存储在mySQL longText字段中。 mySQL数据库以UTF-8编码,这个longText字段也是如此。当我使用mySQL客户端复制longText字段的内容,并将它们粘贴到文本编辑器中时,我发现控制字符已插入属于该对象的属性名称中。这是一个屏幕截图,控制字符显示为红色:

enter image description here

php serialize这是正常的吗?

1 个答案:

答案 0 :(得分:2)

假设你的例子中的¿代表一个空字节,那么根据手册,这是正常的:

  

注意:对象的私有成员具有该成员前面的类名   名称;受保护的成员在成员名称前面加上'*'。这些   前置值在任一侧都有空字节。 〜PHP Manual: Serialize

...当您移动序列化对象时需要注意的事项。丢失那些空字节会使您的对象不可序列化(或者您可能会得到奇怪的全公共属性)。