【问题标题】:PHP Serialize Adding Control Characters to Object Property Names?PHP序列化将控制字符添加到对象属性名称?
【发布时间】:2016-12-28 18:48:47
【问题描述】:

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

php序列化这样正常吗?

【问题讨论】:

    标签: php serialization utf-8


    【解决方案1】:

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

    注意: 对象的私有成员在成员前面加上类名 姓名;受保护的成员在成员名称前有一个“*”。这些 前置值在两边都有空字节。 ~PHP Manual: Serialize

    ...当您移动序列化对象时需要注意这一点。这些空字节的丢失会使您的对象无法序列化(或者您可能会获得名称奇数的所有公共属性)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多