第一次保存正常,第二次编辑后正文出现 "、\,每保存一次反斜杠继续增加。这种“递增”是重复编码的典型信号。

SELECT page_id, LENGTH(content), LEFT(content, 300)
FROM cms_page
WHERE page_id=:page_id;

先判断多余字符已经写进数据库,还是仅在后台编辑器显示。若数据库内容每次都变长,搜索自定义 CMS 保存 Plugin、Observer 和导入脚本中的 addslashes、json_encode、手工实体转换。

Page Builder 自己负责其内容格式。扩展如果先把 HTML 变成 JSON 字符串,再交给已经会序列化的层,就会编码两次。修复时从原始备份恢复一份页面,在进入 repository 前后各比较一次内容;不要对线上全部页面执行不加条件的 stripslashes,合法的代码示例也可能被破坏。

验收采用“打开—保存—再打开—再保存”两轮,数据库内容长度与前台渲染应保持稳定。