清理包含二进制垃圾的输入字符串以生成ascii可打印字符串

时间:2012-03-26 09:22:52

标签: java string oracle10g tinymce

在我们的应用程序中,我们有一个由TinyMCE控制的文本字段。如果客户将Word中的文本粘贴到文本字段中,当我们尝试将此文本存储在我们的数据库中时,Oracle会发现这些文本:

  

ORA-01461:只能插入LONG值才能插入LONG列

清理文本,比如记事本,不会产生任何问题,所以我的猜测是问题在于包含某种二进制垃圾的输入字符串,Oracle将其用作sql中使用的值之间的分隔符插入字符串。

升级我们古老的TinyMCE可能会解决问题,但我也希望确保文本在传递到较低层时确实是干净的。所以我认为我可以确保文本是真正的ASCII,如果没有,通过循环输入中的行来清除未通过ASCII的所有内容并执行以下操作:

line.replaceAll("[^\\p{ASCII}]", "")

这是一个可行的解决方案,如果没有,会有哪些陷阱?

1 个答案:

答案 0 :(得分:0)

如我所述here清洁贴剂内容怎么样? 这也可能会删除垃圾。