Java-显示问号而不是字符的错误消息

Java-显示问号而不是字符的错误消息,java,Java,输出: $ javac Increment.java 这是密码 Increment.java:6: ??: ????? System.out.println(++a++); ^ ??: ?? ??: ? 1 ??? 有人知道可能发生的事情以及如何解决吗? Increment只是一个用于测试的类,因此会出现错误。 我在git bash终端上运行它,但我也在cygwin终端和windows终端上尝试过。 字符集是UTF-8

输出:

$ javac Increment.java
这是密码

Increment.java:6: ??: ?????
    System.out.println(++a++);
                          ^
  ??: ??
  ??:    ?
1 ???
有人知道可能发生的事情以及如何解决吗? Increment只是一个用于测试的类,因此会出现错误。 我在git bash终端上运行它,但我也在cygwin终端和windows终端上尝试过。
字符集是UTF-8。

很可能您设置了国家语言环境(例如俄语、汉语或其他任何语言),使Java编译器返回国家化错误消息,但您的终端(cygwin)不支持UTF-8输出,或者您的系统不支持UTF-8语言环境

作为最快的解决方法,您可以将java编译器切换到:


你能发布导致这种情况的源代码吗?我想你需要提供更多的信息。可能从
Increment
的代码开始。您正在运行此命令的内容将有一个编码,它是某种shell吗?抱歉,现在它是addedStill不够,请从Increment类添加代码
class Increment{
  public static void main(String[] args) {
    int a = 5;


    System.out.println(++a++);
  }
}
$ javac -J-Duser.language=en Increment.java