Java控制台汉语输出乱码问题解决流程
表现形式:Java控制台输出中文字符始终为问号,如下shell部分输出所示
(base) PS F:\Project\DailyUse\KitRoom> f:; cd 'f:\Project\DailyUse\KitRoom'; & 'e:\Environment\JDK_21\bin\java.exe' '@C:\Users\User\AppData\Local\Temp\cp_5qjsd3n3x1x7nup0lk7ibwjjm.argfile' 'fun.Funcky.Main'
3? 24, 2025 11:27:40 ?? fun.Funcky.Main main
??: Hello World
3? 24, 2025 11:27:40 ?? fun.Funcky.Main main
??: Code of outputUTF-8
Hello World
Code of outputUTF-8
????: Main.Apple(ID=1)
(base) PS F:\Project\DailyUse\KitRoom>
添加Java输出字符的标准代码,无效果,排除
System.setProperty("file.encoding","UTF-8"));
添加VM选项:-Dfile.encoding=UTF-8
,无用,排除
首先,排除控制台编码问题
chcp 65001$OutputEncoding = [System.Text.Encoding]::UTF8
这两个命令均无效,排除
然后,配置Idea、VScode IDE开发环境编码,依然没有效果,排除。
然后,进入jshell命令,尝试在jshell中输出汉字字符,字符进入控制行直接变为问号,考虑系统自身原因。
调整系统编码步骤
- 打开
控制面板 -> 区域 -> 管理
。 - 在
非 Unicode 程序的语言
中,点击更改系统区域设置
。 - 勾选
Beta 版:使用 Unicode UTF-8 提供全球语言支持
,然后重启系统。
情况经以上操作后得到解决。