ASCII字符删除不起作用

时间:2019-03-28 09:14:09

标签: java string non-ascii-characters replaceall jdk1.6

如果字符串包含任何非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

1 个答案:

答案 0 :(得分:0)

评论\p{ASCII}稍后出现。 由于ASCII是前7位范围:

String remarks = remarks2.replaceAll("[^\u0000-\u007F]", "");

您可以先将将é分解为e和零宽度组合标记´的文本标准化:

remarks2 = Normalizer.normalize(remarks2, Form.NFD);