文章詳情頁
Java處理不可見特殊字符要點解析
瀏覽:2日期:2022-08-21 08:51:05
看下圖所示,兩個空字符串不相等
因為str中有不可兼得特殊字符,可以在debug中將str的值復制出來,然后粘貼到雙引號中們就可以看到這個字符的真面目,如下圖所示:
uFEFF為控制字符,名為'零寬不折行空格(Zero Width No-Break Space)',此外,類似的不可見字符還有u202A(從左至右嵌入)、u202E(從右至左強制)等控制字符
那我們事怎么遇到這些控制字符的呢?
在讀取文件或者從某文件屬性中直接復制路徑經常會遇到這種問題
在開發中可以對獲得的字符串進行以下處理,來刪除這些控制字符:網上很多說使用正則p{Cntrl}進行替換,經過測試并不起作用,而是用朋友告訴我的p{C}
String str2 = str1.replaceAll('p{C}', '');
System.out.println(''.equals(str2));
就是一些特殊的Unicode字符,如果不確定,可先判斷長度是否一樣:
推薦字符查詢網址查詢網址:
https://unicode-table.com/cn/
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
標簽:
Java
相關文章:
排行榜
