今天安装完JDK后,使用命令行工具运行java显示如下乱码
PS C:\Users\chenw> java Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
??: java [-options] class [args...]
(???)
? java [-options] -jar jarfile [args...]
(?? jar ??)
??????:
-d32 ?? 32 ????? (????)
-d64 ?? 64 ????? (????)
-server ?? "server" VM
?? VM ? server.
-cp <??? zip/jar ????????>
-classpath <??? zip/jar ????????>
? ; ?????, JAR ??
? ZIP ????, ????????
-D<??>=<?>
??????
-verbose:[class|gc|jni]
??????
探究其根源是由于编码方式问题造成的,下面列出常用的编码对应值(10进制):
十进制码值 | 对应编码名称 |
---|---|
950 | 繁体中文 |
65001 | UTF-8代码页 |
936 | 简体中文默认的GBK |
437 | MS-DOS 美国英语 |
解决方法有两种 临时性解决方法,
方法一 临时性解决方法,使用命令chcp
chcp 65001
方法二 修改注册表
HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe
新建 -> DWORD(32位) CodePage 值,创建即可。
设置完成后,通过快捷键shift + 鼠标右键 打开powershell,就可以看到Page页已经改为65001了