如果字符串包含任何非ASCII值,我需要将其删除。
我试过了replaceAll mrthod,它在jdk 1.8及更高版本上都能正常工作。但是我想在jdk 1.6上部署相同的工具,并且它无法正常工作。
String Remarks2 ="hii:╘’i";
String Remarks = Remarks2.replaceAll("[^\\p{ASCII}]", "");
System.out.println("ans: "+Remarks);
jdk 1.8中的输出:hii:i jdk 1.6中的输出:hii:╘’i
实际结果必须为-hii:i
答案 0 :(得分:0)
评论\p{ASCII}
稍后出现。
由于ASCII是前7位范围:
String remarks = remarks2.replaceAll("[^\u0000-\u007F]", "");
您可以先将将é
分解为e
和零宽度组合标记´
的文本标准化:
remarks2 = Normalizer.normalize(remarks2, Form.NFD);