如果字符串包含任何非ASCII值,我需要删除它。
我尝试过使用jdk 1.8及以上版本正常工作的replaceAll方法。但我想在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
实际结果必须是-iii:i
正如评论\p{ASCII}
后来。由于ASCII是第一个7位范围:
String remarks = remarks2.replaceAll("[^\u0000-\u007F]", "");
您可能会尝试将文本分解为é
的文本标准化为e
和零宽度组合标记´
:
remarks2 = Normalizer.normalize(remarks2, Form.NFD);