在System.out中打印阿拉伯语或其他字符集

xyb*_*rek 2 java arabic character-encoding

我要打印一个带有阿拉伯字符的字符串:

private static void print(String msg, Object... args) {
    try {
        PrintStream ps = new PrintStream(System.out, true, "ISO-8859-6");
        ps.println(String.format(msg, args));
    } catch (UnsupportedEncodingException error) {
        System.err.println(error);
        System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我从Eclipse日志控制台中看到,阿拉伯字符显示为这些字符的系列 èååêÒÉ

我的代码中可能缺少什么?

Sam*_* Su 5

试试这个:

private static void print(String msg, Object... args) {
    try {
        PrintStream ps = new PrintStream(System.out, true, "UTF-8");
        ps.println(String.format(msg, args));
    } catch (UnsupportedEncodingException error) {
        System.err.println(error);
        System.exit(0);
    }
}

public static void main (String[] args) throws UnsupportedEncodingException {
    String arabicString = "??? ????";
    print(arabicString);
}
Run Code Online (Sandbox Code Playgroud)