我使用AntiSamy來消毒用戶輸入,它運行良好。有一個問題:它編碼單引號和雙引號。所以如果我想編輯一些東西,my sample's
會被渲染而不是my sample's
- 單引號會被編碼。如何解密java中的單引號和雙引號?
去澄清:broswer正確地呈現引號,但它們被保存在我的數據庫中作爲HTML實體。所以當用戶加載一篇文章進行編輯時,HTML實體將顯示在文本字段中。
- 有沒有辦法避開這個限制?
- 我應該使用/有沒有任何不同的工具?
我的用戶可以發佈代碼和各種其他的東西。所以AntiSamy在那裏做的很好。但我不想在普通文本中轉換單引號和雙引號。
我有什麼選擇?
對不起,我沒有很好地解釋自己。我在談論用戶加載帖子進行編輯時,文本字段會顯示包含HTML實體的原始文本。所以AntiSamy在我的東西到達數據庫之前編碼。這可以。我只是不希望它在普通文本中編碼單引號和雙引號,例如StackOverFlow。他們對所有內容進行編碼,但他們僅引用普通文本。我希望這是有道理的。 – dee
另外,StringUnescapeUtils不能被使用,因爲它可能編碼危險的輸入。我想我只想對我編碼的內容進行選擇,而不是編碼。 – dee
那麼我的第一段應該適合你 – Bozho