在我們的應用程序中,我們有一個由TinyMCE控制的文本字段。如果從Word用戶將文本粘貼到文本框,甲骨文不太願意當我們試圖存儲在我們的數據庫這樣的文字:清理包含二進制垃圾的輸入字符串以生成ascii可打印的字符串
ORA-01461:只能用於插入結合long值轉換爲一個LONG列
清理記事本中的文本不會產生任何問題,所以我的猜測是問題在於輸入字符串中包含某種二進制垃圾,Oracle使用它作爲sql中使用的值之間的分隔符插入字符串。
升級我們古老的TinyMCE可能會解決這個問題,但我也希望確保文本在傳遞到較低層時真的很乾淨。所以我想,我可能保證文本是真實的ASCII,如果沒有,乾淨的一切,不通過輸入線循環傳爲ASCII並執行以下操作:
line.replaceAll("[^\\p{ASCII}]", "")
這是一個可行的解決方案如果不是,那麼陷阱是什麼?
您知道,稍後使用相同的控件編輯此數據將不起作用,因爲您在replaceAll過程中丟失了信息? – TheBlastOne 2012-03-26 10:01:12
我不太確定。通過控制,你的意思是tincymce小部件?我只是想確保數據在打到較低層時是乾淨的。通常情況下,文本輸入到字段中,用戶按下保存,文本傳遞到下層。 更進一步,我想確保數據是乾淨的。使用TinyMCE腳本將所有信任留給客戶端。我希望確保客戶控制範圍之外的完整性。 – oligofren 2012-03-28 16:45:14
我明白了。是的,我指的是小部件。我的意思是,如果在存儲數據之前進行清理,則必須在檢索後「清理」它,以便小組件按照需要將數據正確顯示的方式查看數據。 – TheBlastOne 2012-03-29 03:30:06