Git Bash终端编码问题与Java



你好,我是Win10和Git 2.35.1。

$ git --version
git version 2.35.1.windows.1

我想我的Git Bash终端有一些编码问题。例如,如果我输入java,我得到的消息都是mojibake。

(我不确定为什么我的Java打印在另一种语言,而不是英语诚实。当我安装JRE或JDK时,我没有配置任何特殊的东西。

$ java
▒÷▒: java [-options] class [args...]
(ִ▒▒▒▒)
▒▒  java [-options] -jar jarfile [args...]
(ִ▒▒ jar ▒ļ▒)
▒▒▒▒ѡ▒▒▒▒▒:
-d32          ʹ▒▒ 32 λ▒▒▒▒ģ▒▒ (▒▒▒▒▒▒▒)
-d64          ʹ▒▒ 64 λ▒▒▒▒ģ▒▒ (▒▒▒▒▒▒▒)
-client       ѡ▒▒ "client" VM
-server       ѡ▒▒ "server" VM
Ĭ▒▒ VM ▒▒ client.

我的区域设置是UTF-8:

$ locale
LANG=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=C.UTF-8

并且,当使用像echo这样的命令时,UTF-8字符通过以下方式正确显示:

$ echo 中文中文
中文中文

我尝试了各种方法,如git config --global i18n.logOutputEncoding utf-8setx LC_ALL C.UTF-8,但java命令仍然打印混乱。

有什么问题吗?

java命令使用一些其他编码一起,而不是UTF-8?

先检查一下,就像这里一样:

java -Duser.language=en -Duser.country=US
java -Duser.language=en -Duser.country=US -XshowSettings -version

第二个命令将显示当前设置。

如果可以的话,您可以通过环境变量JAVA_TOOL_OPTIONS来设置这些选项。
尽管,从JDK9+开始,JDK_JAVA_OPTIONS是一个有效的选择。

根据这里的说明,我找到了一个永久的修复方法:REG ADD "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /v JAVA_TOOL_OPTIONS /d -Duser.language=en /t REG_SZ /f并重新启动计算机。

输入java

$ java
Picked up JAVA_TOOL_OPTIONS: -Duser.language=en
Usage: java [options] <mainclass> [args...]
(to execute a class)
or  java [options] -jar <jarfile> [args...]
(to execute a jar file)
or  java [options] -m <module>[/<mainclass>] [args...]
...

最新更新