2012-03-26 38 views
1

在我們的應用程序中,我們有一個由TinyMCE控制的文本字段。如果從Word用戶將文本粘貼到文本框,甲骨文不太願意當我們試圖存儲在我們的數據庫這樣的文字:清理包含二進制垃圾的輸入字符串以生成ascii可打印的字符串

ORA-01461:只能用於插入結合long值轉換爲一個LONG列

清理記事本中的文本不會產生任何問題,所以我的猜測是問題在於輸入字符串中包含某種二進制垃圾,Oracle使用它作爲sql中使用的值之間的分隔符插入字符串。

升級我們古老的TinyMCE可能會解決這個問題,但我也希望確保文本在傳遞到較低層時真的很乾淨。所以我想,我可能保證文本是真實的ASCII,如果沒有,乾淨的一切,不通過輸入線循環傳爲ASCII並執行以下操作:

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

這是一個可行的解決方案如果不是,那麼陷阱是什麼?

+0

您知道,稍後使用相同的控件編輯此數據將不起作用,因爲您在replaceAll過程中丟失了信息? – TheBlastOne 2012-03-26 10:01:12

+0

我不太確定。通過控制,你的意思是tincymce小部件?我只是想確保數據在打到較低層時是乾淨的。通常情況下,文本輸入到字段中,用戶按下保存,文本傳遞到下層。 更進一步,我想確保數據是乾淨的。使用TinyMCE腳本將所有信任留給客戶端。我希望確保客戶控制範圍之外的完整性。 – oligofren 2012-03-28 16:45:14

+0

我明白了。是的,我指的是小部件。我的意思是,如果在存儲數據之前進行清理,則必須在檢索後「清理」它,以便小組件按照需要將數據正確顯示的方式查看數據。 – TheBlastOne 2012-03-29 03:30:06

回答

0

如我所描述的here清潔漿糊內容呢? 這也可能會刪除垃圾。

+0

雖然可以使用TinyMCE(使用較新版本或使用腳本)清理數據,但我希望確保客戶端控制之外的級別的完整性。 – oligofren 2012-03-28 16:46:32