[英]Removing non printable characters
我在數據庫中有一列,其中包含不可打印的字符;
String xyz = "Company Name\r\n Magna";
從數據庫中檢索到后,在Java中,值如下所示
String companyname = "Company Name\\r\\n Magna";"
它添加了一個附加的轉義字符。 我現在如何刪除不可打印的字符?
companyname.replaceAll("\\p{Cntrl}", ""); // Doesn't work.
即使我使用StringBuffer
,也不會因為附加的轉義字符而起作用。
請指教。
在將數據放入數據庫之前,您似乎已經對數據進行了編碼,這給您自己造成了問題。
在第一種情況下,需要替換字符序列'\\' 'r'
和'\\' 'n'
的replaceAll
; 例如
text = text.replaceAll("\\\\r|\\\\n", "");
請注意,為了匹配文字反斜杠字符,必須對它們進行兩次轉義。 一次是字符串文字,第二次是因為反斜杠是正則表達式中的元字符。
但是,IMO,一個更好的解決方案是不要在數據庫中以這種方式編碼CR和NL字符。 您不能不逃避就只在數據庫中表示它們嗎?
好的舊替換怎么樣:
String text = readfromDatabase();
text = text.replace("\n", "").replace("\r", "");
要么
text = text.replaceAll("\\r|\\n", "");
要么
text = text.replaceAll("\\r", "").replaceAll("\\n", "");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.