2016-12-08 106 views
0

我需要刪除[LS],[LS] character only appears when pasted on notepad++ this data was inserted hidden and visible only on UTF-8 encoding editor。還有電話,電子郵件,傳真等字符。刪除隱藏的字符和特殊字符(java/javascript)

我用下面的代碼:

string.replaceAll("\\p{Cntrl}", "").replaceAll("[^\\p{Print}]", ""); 

而且還更換不應該被刪除的中國文字。 有沒有任何方法可以刪除隱藏的字符和圖標字符而不刪除語言字符?

+0

您可以加入更多的例子嗎? – Ethan

+0

請提供更多信息。是unicode文本粘貼到記事本+ +和不正確顯示?圖像中突出顯示的ASCII LS字符來自哪裏,它們是如何產生的?可能相關:[如何在Notepad ++中編輯Unicode文本?](http://superuser.com/questions/21135/how-can-i-edit-unicode-text-in-notepad) – traktor53

+0

該信息來自電子郵件,然後用戶複製整個電子郵件並粘貼到應用程序併成功保存。但是當檢索數據時,我們得到了異常。直到我發現當我在具有UTF-8編碼的notepad ++上覆制數據時,在數據庫/記事本中出現了不可見的奇怪字符。所以我想除了[LS] –

回答

0

JavaScript還是Java?嗯,你說的

刪除隱藏字符和特殊字符(Java/JavaScript的

,所以我想JavaScript解決方案是可以接受的了。您可以通過一個簡單的正則表達式實現它:

string.replace(/[\xa0\x00-\x09\x0b\x0c\x0e-\x1f\x7f]/g, ''); 

它會刪除所有不可見的字符,而不是字母和數字等

+0

之外,還有其他的角色可以嘗試以上的建議,但是沒有奏效。 –

+0

@JohnEdwardDelosReyes。它怎麼沒用?您正在嘗試使用JavaScript還是Java?它有沒有拋出任何錯誤?此外,你想要刪除什麼字符代碼(在Unicode中)? –