ASCII 字符删除不起作用

ASCII Char remove not functioning

如果字符串包含任何非 ASCII 值,我需要将其删除。

我已经尝试过 replaceAll mrthod,它在 jdk 1.8 及更高版本中运行良好。但我想在 jdk 1.6 上部署相同的东西,但它没有运行。

String Remarks2 ="hii:╘’i";

String Remarks = Remarks2.replaceAll("[^\p{ASCII}]", "");
System.out.println("ans: "+Remarks);

Output in jdk 1.8: hii:i Output in jdk 1.6: hii:╘’i

实际结果必须是- hii:i

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

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

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

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