前提:为了时序图展示更多信息,数据库name字段摘取了更多字段入库,但是字段内容更新后,发现报错前端语法错误,后端看了日志,数据查询输出没问题。
1、刚开始以为是name字段里含有特殊字符:@、\等这种导致js-sequence-diagrams不支持,在ibatis里修改了sql,使用replace函数替换了所有的特殊字符,但是还是报错语法错误;
2、直接打印出前端拼接好的diagrams文本,发现文本打印出来没什么问题,但是将一条完整的数据输入UE的时候,会从中间“时间”换行到下一行,将数据库里的name字段完全复制拷贝到UE的时候,发现也存在这个问题,光标会直接移到下一行,说明name字段数据在入库的时候含有回车符,数据完整传到前端后,回车符将一条完整的diagrams数据截断换行,导致报出语法错误,后来查到时入库的Python程序在截取数据入库时出了问题;
3、在了解问题原因后,在ibatis里修改了sql语句,去除name字段里的回车符,语法如下:replace(name,chr(13),null),其中chr(13)代表回车符;
注:起始在diagrams文本中,特殊字符不需要转义,可以直接显示,无需做处理。