序列化对象中的特殊字符正在破坏 PHP 会话

Special chars in serialized object are destroying PHP session

用户登录后,我序列化用户对象并将其存储在他的会话中,就像这样

$_SESSION['User'] = serialize($this);

所以我可以在进一步的步骤中更快地访问他的数据。

现在,有时用户无法保持登录状态,因为下一个页面请求会立即破坏他们的会话。我发现这是因为用户存储在他的数据中的特殊字符。例如。在一个案例中,通知中有一些甜言蜜语

s:72:"♥ Aufsicht ♥ <br>...;"

在另一种情况下,phone 号码是从 Apple 通讯录等中复制的。 在会话中存储是否有限制,例如仅 ASCII 字符?我是否必须将整个字符串转换为另一种格式,例如Base64?或者如何最好地处理这个问题? 谢谢

非常感谢 Sammitch 在他的评论中指出:问题是预序列化。如果我只是将对象分配给 $_SESSION,例如

$_SESSION['User'] = $this;

如果对象的某个字段包含这些字符也没有问题