查找文件中的所有非unicode字符

时间:2016-08-12 07:30:12

标签: java string character-encoding

所以我有一个包含非unicode字符的文本文件。 例如

"pr�s-*"
ESt Präs

如何打印出来,但只打印出来。我知道这个替换它的java方法

String resultString = currentLine.replaceAll("[^\\x00-\\x7F]", "");

我不想替换它们,我想找到它们并打印出来。

1 个答案:

答案 0 :(得分:0)

您可以使用Matcher#find使用[^\\x00-\\x7F]正则表达式或\\P{ASCII}找到并打印所有这些非ASCII字符:

String s = "pr�s-*";
Pattern pattern = Pattern.compile("\\P{ASCII}");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
    System.out.println(matcher.group(0)); 
} 

请参阅Java demo

请参阅Java regex reference

  

\p{ASCII} =所有ASCII码:[\x00-\x7F]

\P表示反向类,除ASCII之外的所有字符。