最近用datax匯入資料到pipeline的時候,碰到乙個報髒資料的錯誤,檢查後發現字串包含\u0000和\u007f,就以為是這兩個unicode字元搞的鬼,寫了正則 unicode.replaceall("[\\s+[\\u007f]\\s+]", "") 來匹配,還是會報髒資料,原始的字串是下面這個樣子的:
12345678 \u0000 \u007f
這裡能看到方框,在eclipse和sublime裡都是看不到的= =
查了很多匹配\u0000的方法,最後發現是不可見字元的問題
用\p匹配就解決啦~:
unicode.replaceall("[\\s+\\p\\s+]", "");
字串中的不可見字元應該如何清除?
在我的工作中,經常要做資料的匯入匯出,包括在程式上和直接在資料庫上操作。由於客戶提供的資料千差萬別,很可能包含大量特殊的不可見的字元,如果直接匯入到資料庫中,可能會導致應用程式出現問題,或者資料庫查詢時出現意想不到的結果。這時,需要在匯入過程中,把這些 雜質 先過濾掉,再匯入到資料庫中。當然也可以在...
Vim中顯示不可見字元
在linux中,cat a file可以把檔案中的所有 可見的和不可見的字元 都顯示出來,在vim中,如何將不可見字元也顯示出來呢?當然,如果只是想在vim中檢視的話,可以這樣 cat a在vim中呼叫cat轉換顯示。這樣的做法不便於編輯,其實vim本身是可以設定顯示不可見字元的。只需要 set i...
不可見的unicode字元
專案中執行到 如 x x.encode encoding 報錯 latin 1 codec can t encode character u u202d in position 0 ordinal not in range 256 可見是編碼問題。報錯資訊顯示這個x字串中含有異常的字元u u202d...