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

Java 清理包含二进制垃圾的inputstring以生成ascii可打印字符串,java,string,oracle10g,tinymce,Java,String,Oracle10g,Tinymce,在我们的应用程序中,我们有一个由TinyMCE控制的文本字段。如果客户将Word中的文本粘贴到文本字段中,当我们试图将此文本存储到数据库中时,Oracle会犹豫: ORA-01461:只能为插入到长列中绑定长值 清理记事本中的文本不会产生任何问题,因此我猜想问题在于输入字符串中包含某种二进制垃圾,Oracle将其用作sql插入字符串中使用的值之间的分隔符 升级我们古老的TinyMCE可能会解决这个问题,但我还想确保文本在传递到较低层时确实是干净的。因此,我认为我可以确保文本是真正的ASCII,如

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

ORA-01461:只能为插入到长列中绑定长值

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

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

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

这是一个可行的解决方案吗?如果不是,陷阱是什么?

像我描述的那样清洁粘贴内容怎么样?
这也可能会删除垃圾邮件。

您知道以后使用同一控件编辑此数据将不起作用,因为您在replaceAll过程中丢失了信息?我不太确定。所谓控制,你是指tincymce小部件?我只是想确保数据在到达较低层时是干净的。通常,文本输入到字段中,用户按save,文本向下传递到较低的层。再往下一点,我想确保数据是干净的。使用TinyMCE脚本将所有信任留给客户端。我想确保客户控制范围之外的完整性。我明白了。是的,我指的是小部件。我的意思是,如果在存储数据之前进行清理,则必须在检索后对其进行清理,以便小部件以正确显示数据所需的方式查看数据。在本例中,只有在有人点击“保存”时,才会保存数据,此时对话框关闭。下次有人编辑文本时,将从数据库中检索文本,因此您看到的是数据库中的内容。我看不出这件事有什么麻烦。如果有某种AJAX保存正在进行,我会看到一个问题,但不是在这里。还是我弄错了?如果在存储数据之前删除数据中的内容,则在检索后,数据将丢失,除非它不是重要数据,就像空白一样。这就是我指的。如果清理字符串以将其发送到较低层,db将存储该字符串,而不是原始字符串。如果您稍后读取并将清理后的字符串重新插入小部件,它将不会在保存时显示与原来相同的内容,是吗?我不知道。我的意思是你可能会丢失数据。虽然TinyMCE在一个更新的版本中,或者你的脚本可以用来清理数据,但我想确保在客户端无法控制的级别上的完整性。