在我们的应用程序中,我们有一个由TinyMCE控制的文本字段。如果客户将Word中的文本粘贴到文本字段中,当我们尝试将此文本存储在我们的数据库中时,Oracle会发现这些文本:
ORA-01461:只能插入LONG值才能插入LONG列
清理文本,比如记事本,不会产生任何问题,所以我的猜测是问题在于包含某种二进制垃圾的输入字符串,Oracle将其用作sql中使用的值之间的分隔符插入字符串。
升级我们古老的TinyMCE可能会解决问题,但我也希望确保文本在传递到较低层时确实是干净的。所以我认为我可以确保文本是真正的ASCII,如果没有,通过循环输入中的行来清除未通过ASCII的所有内容并执行以下操作:
line.replaceAll("[^\\p{ASCII}]", "")
这是一个可行的解决方案,如果没有,会有哪些陷阱?