如何在Java中修剪字符串中的Unicode\u0085字符

如何在Java中修剪字符串中的Unicode\u0085字符,java,Java,我无法在Java中修剪unicode控制字符\u0085。你怎么能做到这一点 String str = "\u0000\u001f\u0085 hi \n" PrintStream out = new PrintStream(System.out, true, "UTF-8"); out.println(teststr); String st = teststr.replaceAll("\\p{Cntrl}", ""); out.println(st); 字符\u0085打印为?而且似乎没有被

我无法在Java中修剪unicode控制字符
\u0085
。你怎么能做到这一点

String str = "\u0000\u001f\u0085 hi \n"
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(teststr);
String st = teststr.replaceAll("\\p{Cntrl}", "");
out.println(st);

字符
\u0085
打印为?而且似乎没有被取代。

相关:谢谢!这起作用了。。。但是我不认为我理解代码。我有一个utf-8格式的输入流,我想从输入流中删除“\u0085”字符。。。我正在使用一个字符串进行测试,看看是否能够在字符串中替换这个字符。我明白了\u0085是一个utf16字符。。。U+0085的utf8字符是0xC2 0x85。。。谢谢您的回答非常有用。我有一个包含有效utf8字符0xC2 0x85(U+0095)的输入流。如何在java中正确阅读此内容?我认为使用字节数组没有帮助,因为0x85超出了范围。基本上,我需要读取来自java中包含0xC2 0x85的套接字的utf8字符。
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public static String trimUtf16(String test) {
        Pattern unicode = Pattern.compile("[^\\x00-\\x7F]",
                Pattern.UNICODE_CASE | Pattern.CANON_EQ
                        | Pattern.CASE_INSENSITIVE);
        Matcher matcher = unicode.matcher(test);
        test = matcher.replaceAll(" ");
        return test;
    }
    System.out.println(trimUtf16("\u0000\u001f\u0085 hi \n"));// hi