你好,我是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-8
和setx 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...]
...