Java如何从字符串中删除非ASCII字符?

下面的代码段从一个字符串,它是不的范围内除去字符x20和x7EASCII代码。下面的正则表达式去除了不可打印和控制字符。但它也保留换行符n(x0A)和回车符r(x0D)。

package org.nhooo.example.regex;

public class ReplaceNonAscii {
    public static void main(String[] args) {
        String str = "Thè quïck brøwn føx jumps over the lãzy dôg.";
        System.out.println("str = " + str);

        // 替换字符串中的所有非ascii字符。
        str = str.replaceAll("[^\\x0A\\x0D\\x20-\\x7E]", "");
        System.out.println("str = " + str);
    }
}

片段输出:

str = Thè quïck brøwn føx jumps over the lãzy dôg.
str = Th quck brwn fx jumps over the lzy dg.