ASCII字符删除不起作用

问题描述 投票:-1回答:1

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

java string non-ascii-characters replaceall jdk1.6
1个回答
0
投票

正如评论\p{ASCII}后来。由于ASCII是第一个7位范围:

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

您可能会尝试将文本分解为é的文本标准化为e和零宽度组合标记´

remarks2 = Normalizer.normalize(remarks2, Form.NFD);
© www.soinside.com 2019 - 2024. All rights reserved.