簡體   English   中英

刪除不可打印的字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM