字符串中的不可见字符

最近用datax导入数据到pipeline的时候,碰到一个报脏数据的错误,检查后发现字符串包含\u0000和\u007f,就以为是这两个unicode字符搞的鬼,写了正则 unicode.replaceAll("[\\s+[\\u007f]\\s+]", "") 来匹配,还是会报脏数据,原始的字符串是下面这个样子的:

12345678 \u0000  \u007f  

这里能看到方框,在eclipse和sublime里都是看不到的= =

查了很多匹配\u0000的方法,最后发现是不可见字符的问题

用\p{C}匹配就解决啦~:

unicode.replaceAll("[\\s+\\p{C}\\s+]", "");

你可能感兴趣的:(Java)